vinext 1.0.0-beta.4 → 1.0.0-beta.6
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 +41 -7
- package/dist/build/prerender-paths.d.ts +2 -2
- package/dist/build/prerender-paths.js +3 -4
- package/dist/build/prerender-phase.d.ts +15 -0
- package/dist/build/prerender-phase.js +37 -0
- package/dist/build/prerender-server-entry.d.ts +1 -1
- package/dist/build/prerender-server-entry.js +3 -3
- package/dist/build/prerender-server-pool.d.ts +4 -2
- package/dist/build/prerender-server-pool.js +2 -0
- package/dist/build/prerender.d.ts +40 -33
- package/dist/build/prerender.js +99 -18
- 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/run-prerender.js +9 -6
- 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-dev-config.d.ts +0 -1
- package/dist/cli.d.ts +1 -1
- 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 +6 -1
- package/dist/client/navigation-runtime.js +5 -1
- 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 +13 -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 +1 -5
- package/dist/config/next-config.d.ts +113 -54
- package/dist/config/next-config.js +27 -7
- package/dist/config/prerender.d.ts +0 -1
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +808 -0
- package/dist/entries/app-browser-entry.d.ts +0 -1
- package/dist/entries/app-browser-entry.js +8 -3
- package/dist/entries/app-rsc-entry.d.ts +30 -16
- package/dist/entries/app-rsc-entry.js +48 -10
- 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 +15 -5
- package/dist/entries/pages-server-entry.d.ts +1 -2
- package/dist/entries/pages-server-entry.js +21 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -2
- package/dist/index.d.ts +0 -1
- package/dist/index.js +328 -227
- 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/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/pages-node-externals.d.ts +23 -0
- package/dist/plugins/pages-node-externals.js +206 -0
- 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 +64 -1
- 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/transitive-externals.d.ts +24 -0
- package/dist/plugins/transitive-externals.js +121 -0
- package/dist/plugins/typeof-window.d.ts +11 -1
- package/dist/plugins/typeof-window.js +141 -13
- package/dist/plugins/use-cache-callable.d.ts +12 -0
- package/dist/plugins/use-cache-callable.js +209 -0
- 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 +1 -1
- package/dist/server/app-bfcache-identity.d.ts +9 -10
- package/dist/server/app-bfcache-identity.js +27 -128
- 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 +46 -30
- 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 +2 -5
- package/dist/server/app-browser-popstate.d.ts +0 -1
- package/dist/server/app-browser-prefetch-response.d.ts +17 -1
- package/dist/server/app-browser-prefetch-response.js +23 -1
- 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 +4 -3
- package/dist/server/app-browser-state.js +2 -4
- 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-boundary-render.js +4 -7
- package/dist/server/app-page-cache-finalizer.d.ts +3 -3
- package/dist/server/app-page-cache-finalizer.js +45 -19
- package/dist/server/app-page-cache-render.d.ts +3 -2
- package/dist/server/app-page-cache-render.js +5 -2
- package/dist/server/app-page-cache.d.ts +3 -4
- package/dist/server/app-page-cache.js +33 -15
- package/dist/server/app-page-dispatch.d.ts +11 -5
- package/dist/server/app-page-dispatch.js +11 -6
- package/dist/server/app-page-element-builder.d.ts +61 -19
- package/dist/server/app-page-element-builder.js +113 -43
- package/dist/server/app-page-execution.d.ts +12 -5
- package/dist/server/app-page-execution.js +20 -7
- 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 +6 -4
- package/dist/server/app-page-render.js +53 -25
- package/dist/server/app-page-request.d.ts +3 -1
- package/dist/server/app-page-request.js +3 -34
- package/dist/server/app-page-response.d.ts +13 -3
- package/dist/server/app-page-response.js +17 -11
- package/dist/server/app-page-route-wiring.d.ts +27 -5
- package/dist/server/app-page-route-wiring.js +110 -58
- 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 +31 -10
- package/dist/server/app-page-stream.js +10 -3
- package/dist/server/app-pages-bridge.d.ts +0 -1
- package/dist/server/app-pages-bridge.js +12 -1
- 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 +1 -1
- package/dist/server/app-prerender-endpoints.js +12 -0
- 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-response-header-provenance.d.ts +13 -0
- package/dist/server/app-response-header-provenance.js +26 -0
- package/dist/server/app-route-handler-cache.d.ts +3 -2
- package/dist/server/app-route-handler-cache.js +7 -3
- package/dist/server/app-route-handler-dispatch.d.ts +0 -1
- package/dist/server/app-route-handler-dispatch.js +4 -2
- package/dist/server/app-route-handler-execution.d.ts +2 -2
- package/dist/server/app-route-handler-execution.js +15 -7
- package/dist/server/app-route-handler-policy.d.ts +1 -1
- package/dist/server/app-route-handler-response.d.ts +3 -2
- package/dist/server/app-route-handler-response.js +15 -5
- package/dist/server/app-route-handler-runtime.d.ts +1 -2
- package/dist/server/app-route-handler-runtime.js +218 -85
- 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-route-request-built-ins.d.ts +16 -0
- package/dist/server/app-route-request-built-ins.js +41 -0
- package/dist/server/app-router-entry.d.ts +0 -1
- package/dist/server/app-router-entry.js +4 -4
- package/dist/server/app-rsc-cache-busting.d.ts +2 -1
- package/dist/server/app-rsc-cache-busting.js +24 -16
- package/dist/server/app-rsc-handler.d.ts +9 -2
- package/dist/server/app-rsc-handler.js +176 -47
- package/dist/server/app-rsc-redirect-flight.d.ts +0 -1
- package/dist/server/app-rsc-request-normalization.d.ts +19 -10
- package/dist/server/app-rsc-response-finalizer.d.ts +7 -2
- package/dist/server/app-rsc-response-finalizer.js +34 -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-rsc-state-fingerprint.d.ts +14 -0
- package/dist/server/app-rsc-state-fingerprint.js +13 -0
- package/dist/server/app-segment-config.d.ts +0 -1
- package/dist/server/app-server-action-execution.d.ts +41 -8
- package/dist/server/app-server-action-execution.js +191 -113
- package/dist/server/app-ssr-entry.d.ts +11 -3
- package/dist/server/app-ssr-entry.js +19 -8
- package/dist/server/app-ssr-router-instance.d.ts +0 -1
- package/dist/server/app-ssr-stream.d.ts +13 -2
- package/dist/server/app-ssr-stream.js +30 -5
- package/dist/server/app-static-generation.d.ts +0 -1
- package/dist/server/app-visited-response-cache.d.ts +1 -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 +11 -7
- package/dist/server/cache-control.js +23 -11
- 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 +6 -2
- package/dist/server/config-headers.js +19 -3
- 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 +54 -105
- 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/file-based-metadata.d.ts +0 -1
- package/dist/server/headers.d.ts +21 -2
- package/dist/server/headers.js +23 -2
- 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 +3 -2
- package/dist/server/http-error-responses.js +21 -4
- 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-build-data.js +1 -1
- package/dist/server/metadata-route-cache-policy.d.ts +6 -0
- package/dist/server/metadata-route-cache-policy.js +6 -0
- package/dist/server/metadata-route-response.d.ts +26 -2
- package/dist/server/metadata-route-response.js +225 -11
- package/dist/server/metadata-routes.d.ts +34 -16
- package/dist/server/metadata-routes.js +1 -1
- 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-response-headers.js +4 -2
- 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 +0 -1
- package/dist/server/pages-api-route.js +30 -5
- package/dist/server/pages-asset-tags.d.ts +2 -1
- 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 +14 -4
- package/dist/server/pages-dev-stylesheets.d.ts +10 -0
- package/dist/server/pages-dev-stylesheets.js +150 -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 +49 -2
- 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 +72 -33
- package/dist/server/pages-page-handler.js +25 -20
- package/dist/server/pages-page-response.d.ts +7 -13
- package/dist/server/pages-page-response.js +16 -23
- 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 +13 -9
- package/dist/server/prerender-cache-life-header.d.ts +11 -0
- package/dist/server/prerender-cache-life-header.js +18 -0
- package/dist/server/prerender-manifest.d.ts +11 -2
- package/dist/server/prerender-manifest.js +4 -1
- package/dist/server/prod-server.d.ts +13 -7
- package/dist/server/prod-server.js +280 -92
- 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 +30 -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 +6 -2
- package/dist/server/seed-cache.js +35 -8
- 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-utils.d.ts +3 -1
- package/dist/server/worker-utils.js +12 -3
- 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-callable-runtime.d.ts +11 -0
- package/dist/shims/cache-callable-runtime.js +30 -0
- 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 +15 -1
- package/dist/shims/cache-request-state.js +27 -1
- package/dist/shims/cache-runtime.d.ts +15 -6
- package/dist/shims/cache-runtime.js +129 -29
- package/dist/shims/cache.d.ts +2 -3
- package/dist/shims/cache.js +2 -2
- package/dist/shims/cdn-cache.d.ts +18 -7
- package/dist/shims/cdn-cache.js +4 -2
- 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 +2 -1
- 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 +115 -65
- package/dist/shims/font-google-base.d.ts +0 -1
- package/dist/shims/font-local.d.ts +0 -1
- package/dist/shims/font-local.js +3 -3
- package/dist/shims/form.d.ts +5 -3
- package/dist/shims/head-state.d.ts +0 -1
- package/dist/shims/head.d.ts +17 -5
- package/dist/shims/head.js +70 -8
- 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 +33 -0
- package/dist/shims/internal/app-route-prefetch-policy.js +63 -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 +22 -11
- package/dist/shims/internal/pages-data-target.js +19 -6
- 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 -23
- package/dist/shims/link.js +59 -150
- package/dist/shims/metadata.d.ts +2 -10
- package/dist/shims/navigation-context-state.d.ts +4 -1
- package/dist/shims/navigation-state.d.ts +1 -0
- package/dist/shims/navigation.d.ts +65 -6
- package/dist/shims/navigation.js +360 -71
- 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 -4
- package/dist/shims/request-state-types.d.ts +1 -0
- package/dist/shims/root-params.d.ts +3 -1
- package/dist/shims/root-params.js +7 -1
- package/dist/shims/router.d.ts +44 -23
- package/dist/shims/router.js +184 -82
- 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 +7 -7
- package/dist/shims/slot.d.ts +22 -11
- package/dist/shims/slot.js +99 -19
- package/dist/shims/streamed-icons.d.ts +1 -3
- 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/encode-cache-tag.d.ts +1 -1
- package/dist/utils/encode-cache-tag.js +1 -1
- 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/prerender-output-paths.d.ts +3 -1
- package/dist/utils/prerender-output-paths.js +6 -1
- 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 +10 -6
|
@@ -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
|
});
|
|
@@ -66,7 +70,8 @@ function toLinkPrefetchRoute(route, hasSiblingInterceptLoading = route.siblingIn
|
|
|
66
70
|
canPrefetchLoadingShell: hasLoadingBoundary(route, hasSiblingInterceptLoading),
|
|
67
71
|
patternParts: [...route.patternParts],
|
|
68
72
|
isDynamic: route.isDynamic,
|
|
69
|
-
...requiresDynamicNavigationRequest(route) ? { requiresDynamicNavigationRequest: true } : {}
|
|
73
|
+
...requiresDynamicNavigationRequest(route) ? { requiresDynamicNavigationRequest: true } : {},
|
|
74
|
+
...(route.rootParamNames?.length ?? 0) > 0 ? { hasRootParams: true } : {}
|
|
70
75
|
};
|
|
71
76
|
}
|
|
72
77
|
/** Project App routes together so sibling-intercept loading is applied to its target route. */
|
|
@@ -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
|
/**
|
|
@@ -20,6 +20,7 @@ const DEFAULT_REACT_MAX_HEADERS_LENGTH = 6e3;
|
|
|
20
20
|
const middlewareRequestHeadersPath = resolveEntryPath("../utils/middleware-request-headers.js", import.meta.url);
|
|
21
21
|
const normalizePathModulePath = resolveEntryPath("../server/normalize-path.js", import.meta.url);
|
|
22
22
|
const appRouteHandlerDispatchPath = resolveEntryPath("../server/app-route-handler-dispatch.js", import.meta.url);
|
|
23
|
+
const appRouteRequestBuiltInsPath = resolveEntryPath("../server/app-route-request-built-ins.js", import.meta.url);
|
|
23
24
|
const appRouteHandlerResponsePath = resolveEntryPath("../server/app-route-handler-response.js", import.meta.url);
|
|
24
25
|
const appMiddlewarePath = resolveEntryPath("../server/app-middleware.js", import.meta.url);
|
|
25
26
|
const metadataRouteResponsePath = resolveEntryPath("../server/metadata-route-response.js", import.meta.url);
|
|
@@ -80,6 +81,7 @@ function generateRscEntry(appDir, routes, middlewarePath, metadataRoutes, global
|
|
|
80
81
|
const cacheComponents = config?.cacheComponents === true;
|
|
81
82
|
const prefetchInlining = config?.prefetchInlining ?? false;
|
|
82
83
|
const hasServerActions = config?.hasServerActions !== false;
|
|
84
|
+
const hasAppRouteHandlers = routes.some((route) => route.routePath !== null);
|
|
83
85
|
const i18nConfig = config?.i18n ?? null;
|
|
84
86
|
const hasPagesDir = config?.hasPagesDir ?? false;
|
|
85
87
|
const publicFiles = config?.publicFiles ?? [];
|
|
@@ -105,6 +107,9 @@ async function __loadPrerenderPagesRoutes() {
|
|
|
105
107
|
}
|
|
106
108
|
` : "";
|
|
107
109
|
return `
|
|
110
|
+
${hasAppRouteHandlers ? `// Capture the canonical Request surface before any user module can extend it.
|
|
111
|
+
// The global-backed snapshot remains available to the lazy dispatch chunk.
|
|
112
|
+
import ${JSON.stringify(appRouteRequestBuiltInsPath)};` : ""}
|
|
108
113
|
import ${JSON.stringify(serverGlobalsPath)};
|
|
109
114
|
import {
|
|
110
115
|
renderToReadableStream as _renderToReadableStream,
|
|
@@ -217,7 +222,7 @@ import { clearAppRequestContext as __clearRequestContext, setAppNavigationContex
|
|
|
217
222
|
|
|
218
223
|
__configureMemoryCacheHandler({ cacheMaxMemorySize: ${JSON.stringify(cacheMaxMemorySize)} });
|
|
219
224
|
import { createAppPrerenderStaticParamsResolver as __createAppPrerenderStaticParamsResolver } from ${JSON.stringify(appPrerenderStaticParamsPath)};
|
|
220
|
-
import { ensureAppRouteModulesLoaded as __ensureRouteLoaded } from ${JSON.stringify(appRouteModuleLoaderPath)};
|
|
225
|
+
import { ensureAppRouteModulesLoaded as __ensureRouteLoaded, loadAppInterceptPage as __loadAppInterceptPage } from ${JSON.stringify(appRouteModuleLoaderPath)};
|
|
221
226
|
import {
|
|
222
227
|
getRenderedConcreteUrlPathsForRoute as __getRenderedConcreteUrlPathsForRoute,
|
|
223
228
|
initPregeneratedPathsFromGlobals as __initPregeneratedPathsFromGlobals,
|
|
@@ -469,9 +474,15 @@ export async function seedMemoryCacheFromPrerender(serverDir) {
|
|
|
469
474
|
buildAppPageRscKey(pathname) {
|
|
470
475
|
return __isrRscKey(pathname);
|
|
471
476
|
},
|
|
477
|
+
buildAppRouteKey(pathname) {
|
|
478
|
+
return __isrRouteKey(pathname);
|
|
479
|
+
},
|
|
472
480
|
writeAppPageEntry(key, data, metadata) {
|
|
473
481
|
return __isrSetPrerenderedAppPage(key, data, metadata);
|
|
474
482
|
},
|
|
483
|
+
writeAppRouteEntry(key, data, policy) {
|
|
484
|
+
return __isrSet(key, data, policy);
|
|
485
|
+
},
|
|
475
486
|
});
|
|
476
487
|
}
|
|
477
488
|
|
|
@@ -677,12 +688,11 @@ export default createAppRscHandler({
|
|
|
677
688
|
// The intercepting-route page module is lazy (page: null + __pageLoader).
|
|
678
689
|
// Resolve it before probing so buildAppPageProbes inspects the real page
|
|
679
690
|
// component for dynamic bailout — matching the render path, which also
|
|
680
|
-
//
|
|
681
|
-
//
|
|
682
|
-
//
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
}
|
|
691
|
+
// hydrates it (resolveAppPageInterceptState). Without this the intercept
|
|
692
|
+
// probe branch silently inspects an undefined component and never
|
|
693
|
+
// observes the page's searchParams/headers access. Shared loader, so
|
|
694
|
+
// the import is isolated from the request context here too.
|
|
695
|
+
if (__probeIntercept) await __loadAppInterceptPage(__probeIntercept);
|
|
686
696
|
return Promise.all(__buildAppPageProbes({
|
|
687
697
|
route,
|
|
688
698
|
pageComponent: PageComponent,
|
|
@@ -846,6 +856,8 @@ export default createAppRscHandler({
|
|
|
846
856
|
scriptNonce,
|
|
847
857
|
routeMatch,
|
|
848
858
|
routePathname,
|
|
859
|
+
dispatchRedirectTargetRequest,
|
|
860
|
+
sourceConfigHeaders,
|
|
849
861
|
searchParams,
|
|
850
862
|
}) {
|
|
851
863
|
const {
|
|
@@ -876,6 +888,7 @@ export default createAppRscHandler({
|
|
|
876
888
|
renderMode: actionRenderMode,
|
|
877
889
|
observeMetadataSearchParamsAccess,
|
|
878
890
|
observePageSearchParamsAccess,
|
|
891
|
+
scriptNonce: targetScriptNonce,
|
|
879
892
|
}) {
|
|
880
893
|
return buildPageElements(actionRoute, actionParams, actionCleanPathname, {
|
|
881
894
|
opts: interceptOpts,
|
|
@@ -886,7 +899,7 @@ export default createAppRscHandler({
|
|
|
886
899
|
renderMode: actionRenderMode,
|
|
887
900
|
observeMetadataSearchParamsAccess: observeMetadataSearchParamsAccess === true,
|
|
888
901
|
observePageSearchParamsAccess: observePageSearchParamsAccess === true,
|
|
889
|
-
}, undefined, actionCleanPathname, scriptNonce);
|
|
902
|
+
}, undefined, actionCleanPathname, targetScriptNonce ?? scriptNonce);
|
|
890
903
|
},
|
|
891
904
|
cleanPathname,
|
|
892
905
|
clearRequestContext() {
|
|
@@ -927,12 +940,15 @@ export default createAppRscHandler({
|
|
|
927
940
|
},
|
|
928
941
|
isRscRequest,
|
|
929
942
|
loadServerAction,
|
|
943
|
+
// Redirect targets are rendered as if the client had navigated to them,
|
|
944
|
+
// so they must route on the raw pathname a real request would use.
|
|
930
945
|
matchRoute(pathnameToMatch) {
|
|
931
|
-
return
|
|
946
|
+
return matchRequestRoute(pathnameToMatch);
|
|
932
947
|
},
|
|
933
948
|
maxActionBodySize: __MAX_ACTION_BODY_SIZE,
|
|
934
949
|
maxActionBodySizeLabel: __MAX_ACTION_BODY_SIZE_LABEL,
|
|
935
950
|
middlewareHeaders: middlewareContext.headers,
|
|
951
|
+
middlewareRequestHeaders: middlewareContext.requestHeaders,
|
|
936
952
|
middlewareStatus: middlewareContext.status,
|
|
937
953
|
mountedSlotsHeader,
|
|
938
954
|
readBodyWithLimit: __readBodyWithLimit,
|
|
@@ -947,6 +963,8 @@ export default createAppRscHandler({
|
|
|
947
963
|
},
|
|
948
964
|
resolveRouteRuntime: __resolveRouteRuntime,
|
|
949
965
|
request,
|
|
966
|
+
dispatchRedirectTargetRequest,
|
|
967
|
+
sourceConfigHeaders,
|
|
950
968
|
sanitizeErrorForClient(error) {
|
|
951
969
|
return __sanitizeErrorForClient(error);
|
|
952
970
|
},
|
|
@@ -955,6 +973,7 @@ export default createAppRscHandler({
|
|
|
955
973
|
setNavigationContext,
|
|
956
974
|
toInterceptOpts(intercept) {
|
|
957
975
|
return {
|
|
976
|
+
interceptGraphId: intercept.interceptionGraphId,
|
|
958
977
|
interceptionContext,
|
|
959
978
|
interceptLayouts: intercept.interceptLayouts,
|
|
960
979
|
interceptLayoutSegments: intercept.interceptLayoutSegments,
|
|
@@ -966,6 +985,8 @@ export default createAppRscHandler({
|
|
|
966
985
|
interceptSlotKey: intercept.slotKey,
|
|
967
986
|
interceptSourceMatchedUrl: interceptionContext,
|
|
968
987
|
interceptSourcePageSegments: intercept.sourcePageSegments,
|
|
988
|
+
interceptTargetPatternParts: intercept.targetPatternParts,
|
|
989
|
+
interceptTargetRouteGraphId: intercept.targetRouteGraphId,
|
|
969
990
|
interceptPage: intercept.page,
|
|
970
991
|
interceptParams: intercept.matchedParams,
|
|
971
992
|
};
|
|
@@ -975,13 +996,27 @@ export default createAppRscHandler({
|
|
|
975
996
|
` : ""}
|
|
976
997
|
i18nConfig: __i18nConfig,
|
|
977
998
|
${hasPagesDir ? `loadPrerenderPagesRoutes: __loadPrerenderPagesRoutes,` : ""}
|
|
999
|
+
${(metadataRoutes?.length ?? 0) > 0 ? `async getPrerenderMetadataRoutePaths() {
|
|
1000
|
+
const { getPrerenderableMetadataRoutePaths: __getPrerenderableMetadataRoutePaths } =
|
|
1001
|
+
await __loadMetadataRouteResponse();
|
|
1002
|
+
return __getPrerenderableMetadataRoutePaths(metadataRoutes);
|
|
1003
|
+
},` : ""}
|
|
1004
|
+
${(metadataRoutes?.length ?? 0) > 0 ? `async isMetadataRoutePath(cleanPathname) {
|
|
1005
|
+
const { isMetadataRouteRequestPath: __isMetadataRouteRequestPath } =
|
|
1006
|
+
await __loadMetadataRouteResponse();
|
|
1007
|
+
return __isMetadataRouteRequestPath(metadataRoutes, cleanPathname);
|
|
1008
|
+
},` : ""}
|
|
978
1009
|
${(metadataRoutes?.length ?? 0) > 0 ? `async handleMetadataRouteRequest(cleanPathname) {
|
|
979
1010
|
const { handleMetadataRouteRequest: __handleMetadataRouteRequest } =
|
|
980
1011
|
await __loadMetadataRouteResponse();
|
|
981
1012
|
return __handleMetadataRouteRequest({
|
|
982
1013
|
metadataRoutes,
|
|
983
1014
|
cleanPathname,
|
|
1015
|
+
isrGet: __isrGet,
|
|
1016
|
+
isrRouteKey: __isrRouteKey,
|
|
1017
|
+
isrSet: __isrSet,
|
|
984
1018
|
makeThenableParams,
|
|
1019
|
+
scheduleBackgroundRegeneration: __triggerBackgroundRegeneration,
|
|
985
1020
|
});
|
|
986
1021
|
},` : ""}
|
|
987
1022
|
matchRoute,
|
|
@@ -999,19 +1034,22 @@ export default createAppRscHandler({
|
|
|
999
1034
|
}
|
|
1000
1035
|
return { route, params };
|
|
1001
1036
|
},
|
|
1002
|
-
${middlewarePath ? `runMiddleware({ cleanPathname, context, hadBasePath, isDataRequest, request }) {
|
|
1037
|
+
${middlewarePath ? `runMiddleware({ cleanPathname, context, externalRewriteRequest, hadBasePath, isDataRequest, middlewareRequest, request, validateExternalRewriteRequest }) {
|
|
1003
1038
|
return __applyAppMiddleware({
|
|
1004
1039
|
basePath: __basePath,
|
|
1005
1040
|
cleanPathname,
|
|
1006
1041
|
context,
|
|
1042
|
+
externalRewriteRequest,
|
|
1007
1043
|
hadBasePath,
|
|
1008
1044
|
filePath: ${JSON.stringify(middlewarePath ? toSlash(middlewarePath) : "")},
|
|
1009
1045
|
i18nConfig: __i18nConfig,
|
|
1010
1046
|
isDataRequest,
|
|
1011
1047
|
isProxy: ${JSON.stringify(isProxyFile(middlewarePath))},
|
|
1048
|
+
middlewareRequest,
|
|
1012
1049
|
module: middlewareModule,
|
|
1013
1050
|
request,
|
|
1014
1051
|
trailingSlash: __trailingSlash,
|
|
1052
|
+
validateExternalRewriteRequest,
|
|
1015
1053
|
});
|
|
1016
1054
|
},` : ""}
|
|
1017
1055
|
publicFiles: __publicFiles,
|
|
@@ -115,6 +115,7 @@ function buildRouteEntries(routes, imports) {
|
|
|
115
115
|
const forbiddenLoaders = lazyLoaderArray(forbiddenPaths, imports);
|
|
116
116
|
const unauthorizedLoaders = lazyLoaderArray(unauthorizedPaths, imports);
|
|
117
117
|
const siblingInterceptEntries = (route.siblingIntercepts ?? []).map((ir) => ` {
|
|
118
|
+
id: ${JSON.stringify(ir.id ?? null)},
|
|
118
119
|
convention: ${JSON.stringify(ir.convention)},
|
|
119
120
|
targetPattern: ${JSON.stringify(ir.targetPattern)},
|
|
120
121
|
sourceMatchPattern: ${JSON.stringify(ir.sourceMatchPattern)},
|
|
@@ -2,7 +2,6 @@ import { ResolvedNextConfig } from "../config/next-config.js";
|
|
|
2
2
|
import { createValidFileMatcher } from "../routing/file-matcher.js";
|
|
3
3
|
import { StaticMiddlewareMatcher } from "../build/report.js";
|
|
4
4
|
import { VinextLinkPrefetchRoute } from "../client/vinext-next-data.js";
|
|
5
|
-
|
|
6
5
|
//#region src/entries/pages-client-entry.d.ts
|
|
7
6
|
declare function generateClientEntry(pagesDir: string, nextConfig: ResolvedNextConfig, fileMatcher: ReturnType<typeof createValidFileMatcher>, options?: {
|
|
8
7
|
appPrefetchRoutes?: readonly VinextLinkPrefetchRoute[];
|
|
@@ -2,7 +2,9 @@ import { toSlash } from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index
|
|
|
2
2
|
import { findFileWithExts } from "../routing/file-matcher.js";
|
|
3
3
|
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
4
4
|
import { apiRouter, pagesRouter } from "../routing/pages-router.js";
|
|
5
|
+
import { resolveClientRuntimeModule } from "./runtime-entry-module.js";
|
|
5
6
|
import { hasExportedName } from "../build/report.js";
|
|
7
|
+
import { toClientRewrites } from "../client/client-rewrites.js";
|
|
6
8
|
import { readFile } from "node:fs/promises";
|
|
7
9
|
//#region src/entries/pages-client-entry.ts
|
|
8
10
|
/**
|
|
@@ -51,6 +53,8 @@ async function generateClientEntry(pagesDir, nextConfig, fileMatcher, options =
|
|
|
51
53
|
const pagesSsgPatterns = (await Promise.all(pageRoutes.map(async (route) => await hasGetStaticPropsExport(route.filePath) ? patternToNextFormat(route.pattern) : null))).filter((pattern) => pattern !== null);
|
|
52
54
|
const pagesSspPatterns = (await Promise.all(pageRoutes.map(async (route) => await hasGetServerSidePropsExport(route.filePath) ? patternToNextFormat(route.pattern) : null))).filter((pattern) => pattern !== null);
|
|
53
55
|
const instrumentationClientPath = options.instrumentationClientPath ?? null;
|
|
56
|
+
const clientRewrites = toClientRewrites(nextConfig.rewrites);
|
|
57
|
+
const reactInstanceBootstrapPath = resolveClientRuntimeModule("react-instance-bootstrap");
|
|
54
58
|
const loaderEntries = pageRoutes.map((r) => {
|
|
55
59
|
const absPath = r.filePath;
|
|
56
60
|
const nextFormatPattern = patternToNextFormat(r.pattern);
|
|
@@ -61,7 +65,8 @@ async function generateClientEntry(pagesDir, nextConfig, fileMatcher, options =
|
|
|
61
65
|
const userInstrumentationImport = instrumentationClientPath ? `import ${JSON.stringify(toSlash(instrumentationClientPath))};\n` : "";
|
|
62
66
|
const reactPreambleImport = options.reactPreamble === false ? "" : "import \"@vitejs/plugin-react/preamble\";\n";
|
|
63
67
|
const reactStrictModeEnabled = nextConfig.reactStrictMode === true;
|
|
64
|
-
return
|
|
68
|
+
return `import ${JSON.stringify(reactInstanceBootstrapPath)};
|
|
69
|
+
${userInstrumentationImport}${reactPreambleImport}
|
|
65
70
|
import "vinext/instrumentation-client";
|
|
66
71
|
import React from "react";
|
|
67
72
|
import { hydrateRoot } from "react-dom/client";
|
|
@@ -121,7 +126,7 @@ window.__VINEXT_LINK_PREFETCH_ROUTES__ = ${JSON.stringify(appPrefetchRoutes)};
|
|
|
121
126
|
// so whichever entry runs first emits the Pages manifest.
|
|
122
127
|
window.__VINEXT_PAGES_LINK_PREFETCH_ROUTES__ = ${JSON.stringify(pagesPrefetchRoutes)};
|
|
123
128
|
window.__VINEXT_CLIENT_REDIRECTS__ = ${JSON.stringify(nextConfig.redirects)};
|
|
124
|
-
window.__VINEXT_CLIENT_REWRITES__ = ${JSON.stringify(
|
|
129
|
+
window.__VINEXT_CLIENT_REWRITES__ = ${JSON.stringify(clientRewrites)};
|
|
125
130
|
|
|
126
131
|
const nextDataElement = document.getElementById("__NEXT_DATA__");
|
|
127
132
|
if (nextDataElement?.textContent) {
|
|
@@ -212,13 +217,18 @@ async function hydrate() {
|
|
|
212
217
|
window.__NEXT_HYDRATED_AT = hydratedAt;
|
|
213
218
|
window.__NEXT_HYDRATED_CB?.();
|
|
214
219
|
|
|
215
|
-
|
|
220
|
+
const initialMatchesMiddleware =
|
|
221
|
+
nextData.__vinext?.hasMiddleware === true || nextData.__vinext?.hasRewrites === true;
|
|
222
|
+
const shouldHydrateQuery =
|
|
223
|
+
nextData.isFallback ||
|
|
224
|
+
(nextData.gsp === true && (initialMatchesMiddleware || window.location.search !== ""));
|
|
225
|
+
if (shouldHydrateQuery) {
|
|
216
226
|
const currentUrl = window.location.pathname + window.location.search + window.location.hash;
|
|
217
|
-
const routeUrl = nextData.__vinext?.routeUrl;
|
|
227
|
+
const routeUrl = nextData.isFallback ? nextData.__vinext?.routeUrl : undefined;
|
|
218
228
|
await Router.replace(
|
|
219
229
|
routeUrl || currentUrl,
|
|
220
230
|
routeUrl ? currentUrl : undefined,
|
|
221
|
-
{ _h: 1, scroll: false },
|
|
231
|
+
{ _h: 1, scroll: false, shallow: !nextData.isFallback && !initialMatchesMiddleware },
|
|
222
232
|
);
|
|
223
233
|
}
|
|
224
234
|
}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { ResolvedNextConfig } from "../config/next-config.js";
|
|
2
2
|
import { createValidFileMatcher } from "../routing/file-matcher.js";
|
|
3
|
-
|
|
4
3
|
//#region src/entries/pages-server-entry.d.ts
|
|
5
4
|
/**
|
|
6
5
|
* Generate the virtual SSR server entry module.
|
|
7
6
|
* This is the entry point for `vite build --ssr`.
|
|
8
7
|
*/
|
|
9
|
-
declare function generateServerEntry(pagesDir: string, nextConfig: ResolvedNextConfig, fileMatcher: ReturnType<typeof createValidFileMatcher>, middlewarePath: string | null, instrumentationPath: string | null): Promise<string>;
|
|
8
|
+
declare function generateServerEntry(pagesDir: string, nextConfig: ResolvedNextConfig, fileMatcher: ReturnType<typeof createValidFileMatcher>, middlewarePath: string | null, instrumentationPath: string | null, publicFiles?: string[]): Promise<string>;
|
|
10
9
|
//#endregion
|
|
11
10
|
export { generateServerEntry };
|
|
@@ -35,7 +35,7 @@ async function getPagesDataKind(filePath) {
|
|
|
35
35
|
* Generate the virtual SSR server entry module.
|
|
36
36
|
* This is the entry point for `vite build --ssr`.
|
|
37
37
|
*/
|
|
38
|
-
async function generateServerEntry(pagesDir, nextConfig, fileMatcher, middlewarePath, instrumentationPath) {
|
|
38
|
+
async function generateServerEntry(pagesDir, nextConfig, fileMatcher, middlewarePath, instrumentationPath, publicFiles = []) {
|
|
39
39
|
const pageRoutes = await pagesRouter(pagesDir, nextConfig?.pageExtensions, fileMatcher);
|
|
40
40
|
const apiRoutes = await apiRouter(pagesDir, nextConfig?.pageExtensions, fileMatcher);
|
|
41
41
|
const pageImports = pageRoutes.map((r, i) => `import * as page_${i} from ${JSON.stringify(r.filePath)};`);
|
|
@@ -64,6 +64,7 @@ async function generateServerEntry(pagesDir, nextConfig, fileMatcher, middleware
|
|
|
64
64
|
basePath: nextConfig?.basePath ?? "",
|
|
65
65
|
assetPrefix: nextConfig?.assetPrefix ?? "",
|
|
66
66
|
trailingSlash: nextConfig?.trailingSlash ?? false,
|
|
67
|
+
skipProxyUrlNormalize: nextConfig?.skipProxyUrlNormalize ?? false,
|
|
67
68
|
redirects: nextConfig?.redirects ?? [],
|
|
68
69
|
rewrites: nextConfig?.rewrites ?? {
|
|
69
70
|
beforeFiles: [],
|
|
@@ -151,7 +152,7 @@ import { buildRouteTrie as _buildRouteTrie, trieMatch as _trieMatch } from ${JSO
|
|
|
151
152
|
import { reportRequestError as _reportRequestError } from "vinext/instrumentation";
|
|
152
153
|
import { resolvePagesI18nRequest } from ${JSON.stringify(_pagesI18nPath)};
|
|
153
154
|
import { handlePagesApiRoute as __handlePagesApiRoute } from ${JSON.stringify(_pagesApiRoutePath)};
|
|
154
|
-
import { normalizePagesDataRequest as __normalizePagesDataRequest, buildNextDataNotFoundResponse as __buildNextDataNotFoundResponse } from ${JSON.stringify(_pagesDataRoutePath)};
|
|
155
|
+
import { normalizePagesDataRequest as __normalizePagesDataRequest, shouldAddTrailingSlashToPagesDataPath as __shouldAddTrailingSlashToPagesDataPath, buildNextDataNotFoundResponse as __buildNextDataNotFoundResponse } from ${JSON.stringify(_pagesDataRoutePath)};
|
|
155
156
|
import { buildDefaultPagesNotFoundResponse as __buildDefaultPagesNotFoundResponse } from ${JSON.stringify(_pagesDefault404Path)};
|
|
156
157
|
import { createPagesPageHandler as __createPagesPageHandler } from ${JSON.stringify(_pagesPageHandlerPath)};
|
|
157
158
|
import { isOnDemandRevalidateRequest as __isOnDemandRevalidateRequest } from ${JSON.stringify(_isrCachePath)};
|
|
@@ -177,7 +178,11 @@ export function normalizeDataRequest(request) {
|
|
|
177
178
|
request,
|
|
178
179
|
buildId,
|
|
179
180
|
vinextConfig.basePath,
|
|
180
|
-
|
|
181
|
+
__shouldAddTrailingSlashToPagesDataPath(
|
|
182
|
+
hasMiddleware,
|
|
183
|
+
vinextConfig.trailingSlash,
|
|
184
|
+
vinextConfig.skipProxyUrlNormalize,
|
|
185
|
+
),
|
|
181
186
|
);
|
|
182
187
|
}
|
|
183
188
|
export const hasMiddleware = ${JSON.stringify(Boolean(middlewarePath))};
|
|
@@ -202,7 +207,7 @@ async function _renderToStringAsync(element) {
|
|
|
202
207
|
return new Response(stream).text();
|
|
203
208
|
}
|
|
204
209
|
|
|
205
|
-
async function _renderIsrPassToStringAsync(element) {
|
|
210
|
+
async function _renderIsrPassToStringAsync(element, onHeadReady) {
|
|
206
211
|
// The cache-fill render is a second render pass for the same request.
|
|
207
212
|
// Reset render-scoped state so it cannot leak from the streamed response
|
|
208
213
|
// render or affect async work that is still draining from that stream.
|
|
@@ -211,7 +216,17 @@ async function _renderIsrPassToStringAsync(element) {
|
|
|
211
216
|
return await runWithServerInsertedHTMLState(() =>
|
|
212
217
|
runWithHeadState(() =>
|
|
213
218
|
_runWithCacheState(() =>
|
|
214
|
-
runWithPrivateCache(() =>
|
|
219
|
+
runWithPrivateCache(() =>
|
|
220
|
+
runWithFetchCache(async () => {
|
|
221
|
+
const html = await _renderToStringAsync(element);
|
|
222
|
+
// next/head tags are collected as a side effect of the render
|
|
223
|
+
// above and live in this ALS scope only, so a caller that wants
|
|
224
|
+
// the regenerated head has to read it here — after the render,
|
|
225
|
+
// before the scope unwinds.
|
|
226
|
+
await onHeadReady?.();
|
|
227
|
+
return html;
|
|
228
|
+
}),
|
|
229
|
+
),
|
|
215
230
|
),
|
|
216
231
|
),
|
|
217
232
|
);
|
|
@@ -227,6 +242,7 @@ ${errorImportCode}
|
|
|
227
242
|
export const pageRoutes = [
|
|
228
243
|
${pageRouteEntries.join(",\n")}
|
|
229
244
|
];
|
|
245
|
+
export const publicFiles = new Set(${JSON.stringify(publicFiles)});
|
|
230
246
|
const _pageRouteTrie = _buildRouteTrie(pageRoutes);
|
|
231
247
|
const _errorPageRoute = {
|
|
232
248
|
pattern: "/_error",
|
|
@@ -31,7 +31,8 @@ type ImageAdapterDescriptor<O extends Record<string, unknown> = Record<string, u
|
|
|
31
31
|
* Module specifier (or absolute path, e.g. from `require.resolve(...)`) whose
|
|
32
32
|
* default export is an image optimizer factory.
|
|
33
33
|
*/
|
|
34
|
-
adapter: string;
|
|
34
|
+
adapter: string;
|
|
35
|
+
/** JSON-serializable options forwarded to the factory at runtime. */
|
|
35
36
|
options?: O;
|
|
36
37
|
};
|
|
37
38
|
/**
|
|
@@ -46,7 +47,8 @@ type ImageAdapterDescriptor<O extends Record<string, unknown> = Record<string, u
|
|
|
46
47
|
* serializable next.config data.
|
|
47
48
|
*/
|
|
48
49
|
type VinextImageConfig = {
|
|
49
|
-
/** Server-side image optimizer adapter (the `/_next/image` transform backend). */
|
|
50
|
+
/** Server-side image optimizer adapter (the `/_next/image` transform backend). */
|
|
51
|
+
optimizer?: ImageAdapterDescriptor;
|
|
50
52
|
};
|
|
51
53
|
/** Public virtual module id imported by the server entries. */
|
|
52
54
|
declare const VIRTUAL_IMAGE_ADAPTERS = "virtual:vinext-image-adapters";
|
package/dist/index.d.ts
CHANGED
|
@@ -5,7 +5,6 @@ import { AppStaticExportOptions, StaticExportOptions, StaticExportResult, static
|
|
|
5
5
|
import { VinextImageConfig } from "./image/image-adapters-virtual.js";
|
|
6
6
|
import { PluginOption } from "vite";
|
|
7
7
|
import { Options } from "@vitejs/plugin-react";
|
|
8
|
-
|
|
9
8
|
//#region src/index.d.ts
|
|
10
9
|
type VinextOptions = {
|
|
11
10
|
/**
|