vinext 0.0.49 → 0.0.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/build/client-build-config.js.map +1 -1
- package/dist/build/google-fonts/build-url.js.map +1 -1
- package/dist/build/google-fonts/fallback-metrics-data.js +14031 -0
- package/dist/build/google-fonts/fallback-metrics-data.js.map +1 -0
- package/dist/build/google-fonts/fallback-metrics.d.ts +13 -0
- package/dist/build/google-fonts/fallback-metrics.js +46 -0
- package/dist/build/google-fonts/fallback-metrics.js.map +1 -0
- package/dist/build/google-fonts/get-axes.js.map +1 -1
- package/dist/build/google-fonts/sort-variants.js.map +1 -1
- package/dist/build/google-fonts/validate.js.map +1 -1
- package/dist/build/layout-classification.js.map +1 -1
- package/dist/build/nitro-route-rules.js.map +1 -1
- package/dist/build/precompress.d.ts +13 -2
- package/dist/build/precompress.js +12 -3
- package/dist/build/precompress.js.map +1 -1
- package/dist/build/prerender.d.ts +17 -1
- package/dist/build/prerender.js +114 -23
- package/dist/build/prerender.js.map +1 -1
- package/dist/build/report.d.ts +5 -4
- package/dist/build/report.js +196 -348
- package/dist/build/report.js.map +1 -1
- package/dist/build/route-classification-injector.js.map +1 -1
- package/dist/build/route-classification-manifest.js.map +1 -1
- package/dist/build/run-prerender.js.map +1 -1
- package/dist/build/server-manifest.js.map +1 -1
- package/dist/build/ssr-manifest.js.map +1 -1
- package/dist/build/standalone.js.map +1 -1
- package/dist/build/static-export.js.map +1 -1
- package/dist/check.js +2 -1
- package/dist/check.js.map +1 -1
- package/dist/cli-args.js.map +1 -1
- package/dist/cli.js +68 -7
- package/dist/cli.js.map +1 -1
- package/dist/client/instrumentation-client-state.js.map +1 -1
- package/dist/client/validate-module-path.js.map +1 -1
- package/dist/client/vinext-next-data.d.ts +5 -1
- package/dist/client/window-next.d.ts +151 -0
- package/dist/client/window-next.js +48 -0
- package/dist/client/window-next.js.map +1 -0
- package/dist/cloudflare/kv-cache-handler.js.map +1 -1
- package/dist/cloudflare/tpr.js +2 -1
- package/dist/cloudflare/tpr.js.map +1 -1
- package/dist/config/config-matchers.d.ts +3 -1
- package/dist/config/config-matchers.js +5 -4
- package/dist/config/config-matchers.js.map +1 -1
- package/dist/config/dotenv.d.ts +11 -1
- package/dist/config/dotenv.js.map +1 -1
- package/dist/config/next-config.d.ts +93 -6
- package/dist/config/next-config.js +233 -6
- package/dist/config/next-config.js.map +1 -1
- package/dist/config/tsconfig-paths.d.ts +13 -0
- package/dist/config/tsconfig-paths.js +117 -0
- package/dist/config/tsconfig-paths.js.map +1 -0
- package/dist/deploy.js +16 -7
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-browser-entry.d.ts +3 -1
- package/dist/entries/app-browser-entry.js +36 -2
- package/dist/entries/app-browser-entry.js.map +1 -1
- package/dist/entries/app-rsc-entry.d.ts +19 -1
- package/dist/entries/app-rsc-entry.js +49 -12
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/app-rsc-manifest.d.ts +9 -0
- package/dist/entries/app-rsc-manifest.js +8 -1
- package/dist/entries/app-rsc-manifest.js.map +1 -1
- package/dist/entries/app-ssr-entry.js.map +1 -1
- package/dist/entries/pages-client-entry.js +3 -5
- package/dist/entries/pages-client-entry.js.map +1 -1
- package/dist/entries/pages-entry-helpers.js.map +1 -1
- package/dist/entries/pages-server-entry.js +34 -1
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/entries/runtime-entry-module.js.map +1 -1
- package/dist/index.js +204 -53
- package/dist/index.js.map +1 -1
- package/dist/init.js.map +1 -1
- package/dist/plugins/async-hooks-stub.js.map +1 -1
- package/dist/plugins/client-reference-dedup.d.ts +15 -2
- package/dist/plugins/client-reference-dedup.js +138 -16
- package/dist/plugins/client-reference-dedup.js.map +1 -1
- package/dist/plugins/fonts.d.ts +2 -2
- package/dist/plugins/fonts.js +15 -6
- package/dist/plugins/fonts.js.map +1 -1
- package/dist/plugins/instrumentation-client.js.map +1 -1
- package/dist/plugins/og-assets.js.map +1 -1
- package/dist/plugins/optimize-imports.js.map +1 -1
- package/dist/plugins/postcss.js.map +1 -1
- package/dist/plugins/rsc-client-reference-loaders.d.ts +7 -0
- package/dist/plugins/rsc-client-reference-loaders.js +48 -0
- package/dist/plugins/rsc-client-reference-loaders.js.map +1 -0
- package/dist/plugins/rsc-client-shim-excludes.js.map +1 -1
- package/dist/plugins/sass.d.ts +34 -0
- package/dist/plugins/sass.js +22 -0
- package/dist/plugins/sass.js.map +1 -0
- package/dist/plugins/server-externals-manifest.js.map +1 -1
- package/dist/plugins/strip-server-exports.js.map +1 -1
- package/dist/routing/app-route-graph.d.ts +78 -6
- package/dist/routing/app-route-graph.js +241 -25
- package/dist/routing/app-route-graph.js.map +1 -1
- package/dist/routing/app-router.js.map +1 -1
- package/dist/routing/file-matcher.js.map +1 -1
- package/dist/routing/pages-router.js.map +1 -1
- package/dist/routing/route-matching.js.map +1 -1
- package/dist/routing/route-pattern.d.ts +56 -1
- package/dist/routing/route-pattern.js +60 -1
- package/dist/routing/route-pattern.js.map +1 -1
- package/dist/routing/route-trie.js.map +1 -1
- package/dist/routing/route-validation.js.map +1 -1
- package/dist/routing/utils.js.map +1 -1
- package/dist/server/api-handler.js.map +1 -1
- package/dist/server/app-browser-action-result.d.ts +44 -0
- package/dist/server/app-browser-action-result.js +79 -0
- package/dist/server/app-browser-action-result.js.map +1 -0
- package/dist/server/app-browser-entry.js +330 -133
- package/dist/server/app-browser-entry.js.map +1 -1
- package/dist/server/app-browser-error.js.map +1 -1
- package/dist/server/app-browser-hydration.d.ts +31 -0
- package/dist/server/app-browser-hydration.js +30 -0
- package/dist/server/app-browser-hydration.js.map +1 -0
- package/dist/server/app-browser-navigation-controller.d.ts +20 -4
- package/dist/server/app-browser-navigation-controller.js +90 -23
- package/dist/server/app-browser-navigation-controller.js.map +1 -1
- package/dist/server/app-browser-popstate.d.ts +16 -0
- package/dist/server/app-browser-popstate.js +17 -0
- package/dist/server/app-browser-popstate.js.map +1 -0
- package/dist/server/app-browser-rsc-redirect.d.ts +28 -0
- package/dist/server/app-browser-rsc-redirect.js +37 -0
- package/dist/server/app-browser-rsc-redirect.js.map +1 -0
- package/dist/server/app-browser-state.d.ts +27 -23
- package/dist/server/app-browser-state.js +158 -54
- package/dist/server/app-browser-state.js.map +1 -1
- package/dist/server/app-browser-stream.d.ts +9 -4
- package/dist/server/app-browser-stream.js +29 -8
- package/dist/server/app-browser-stream.js.map +1 -1
- package/dist/server/app-browser-visible-commit.d.ts +11 -1
- package/dist/server/app-browser-visible-commit.js +69 -21
- package/dist/server/app-browser-visible-commit.js.map +1 -1
- package/dist/server/app-client-reference-preloader.js.map +1 -1
- package/dist/server/app-elements-wire.d.ts +43 -6
- package/dist/server/app-elements-wire.js +121 -5
- package/dist/server/app-elements-wire.js.map +1 -1
- package/dist/server/app-elements.d.ts +2 -2
- package/dist/server/app-elements.js +2 -2
- package/dist/server/app-elements.js.map +1 -1
- package/dist/server/app-fallback-renderer.d.ts +10 -1
- package/dist/server/app-fallback-renderer.js +37 -1
- package/dist/server/app-fallback-renderer.js.map +1 -1
- package/dist/server/app-history-state.d.ts +26 -0
- package/dist/server/app-history-state.js +53 -0
- package/dist/server/app-history-state.js.map +1 -0
- package/dist/server/app-hook-warning-suppression.js.map +1 -1
- package/dist/server/app-middleware.d.ts +1 -1
- package/dist/server/app-middleware.js +4 -9
- package/dist/server/app-middleware.js.map +1 -1
- package/dist/server/app-mounted-slots-header.js.map +1 -1
- package/dist/server/app-page-boundary-render.d.ts +11 -1
- package/dist/server/app-page-boundary-render.js +27 -19
- package/dist/server/app-page-boundary-render.js.map +1 -1
- package/dist/server/app-page-boundary.d.ts +1 -0
- package/dist/server/app-page-boundary.js +10 -7
- package/dist/server/app-page-boundary.js.map +1 -1
- package/dist/server/app-page-cache.d.ts +23 -3
- package/dist/server/app-page-cache.js +63 -27
- package/dist/server/app-page-cache.js.map +1 -1
- package/dist/server/app-page-dispatch.d.ts +11 -1
- package/dist/server/app-page-dispatch.js +85 -14
- package/dist/server/app-page-dispatch.js.map +1 -1
- package/dist/server/app-page-element-builder.d.ts +10 -1
- package/dist/server/app-page-element-builder.js +38 -6
- package/dist/server/app-page-element-builder.js.map +1 -1
- package/dist/server/app-page-execution.js +2 -3
- package/dist/server/app-page-execution.js.map +1 -1
- package/dist/server/app-page-head.d.ts +7 -0
- package/dist/server/app-page-head.js +6 -1
- package/dist/server/app-page-head.js.map +1 -1
- package/dist/server/app-page-method.js.map +1 -1
- package/dist/server/app-page-params.js.map +1 -1
- package/dist/server/app-page-probe.d.ts +23 -1
- package/dist/server/app-page-probe.js +29 -1
- package/dist/server/app-page-probe.js.map +1 -1
- package/dist/server/app-page-render-observation.d.ts +35 -0
- package/dist/server/app-page-render-observation.js +68 -0
- package/dist/server/app-page-render-observation.js.map +1 -0
- package/dist/server/app-page-render.d.ts +12 -2
- package/dist/server/app-page-render.js +90 -7
- package/dist/server/app-page-render.js.map +1 -1
- package/dist/server/app-page-request.d.ts +1 -0
- package/dist/server/app-page-request.js +2 -1
- package/dist/server/app-page-request.js.map +1 -1
- package/dist/server/app-page-response.d.ts +2 -0
- package/dist/server/app-page-response.js +18 -7
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-route-wiring.d.ts +9 -3
- package/dist/server/app-page-route-wiring.js +91 -62
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-segment-state.d.ts +10 -0
- package/dist/server/app-page-segment-state.js +87 -0
- package/dist/server/app-page-segment-state.js.map +1 -0
- package/dist/server/app-page-stream.d.ts +9 -2
- package/dist/server/app-page-stream.js +4 -1
- package/dist/server/app-page-stream.js.map +1 -1
- package/dist/server/app-post-middleware-context.js.map +1 -1
- package/dist/server/app-prerender-endpoints.js.map +1 -1
- package/dist/server/app-prerender-static-params.js.map +1 -1
- package/dist/server/app-render-dependency.js.map +1 -1
- package/dist/server/app-request-context.js.map +1 -1
- package/dist/server/app-route-handler-cache.js.map +1 -1
- package/dist/server/app-route-handler-dispatch.js +3 -1
- package/dist/server/app-route-handler-dispatch.js.map +1 -1
- package/dist/server/app-route-handler-execution.js.map +1 -1
- package/dist/server/app-route-handler-policy.js +1 -0
- package/dist/server/app-route-handler-policy.js.map +1 -1
- package/dist/server/app-route-handler-response.js +4 -3
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-route-handler-runtime.js.map +1 -1
- package/dist/server/app-router-entry.js +7 -15
- package/dist/server/app-router-entry.js.map +1 -1
- package/dist/server/app-rsc-cache-busting.d.ts +23 -2
- package/dist/server/app-rsc-cache-busting.js +75 -19
- package/dist/server/app-rsc-cache-busting.js.map +1 -1
- package/dist/server/app-rsc-embedded-chunks.d.ts +9 -0
- package/dist/server/app-rsc-embedded-chunks.js +34 -0
- package/dist/server/app-rsc-embedded-chunks.js.map +1 -0
- package/dist/server/app-rsc-error-handler.js.map +1 -1
- package/dist/server/app-rsc-errors.d.ts +4 -1
- package/dist/server/app-rsc-errors.js +1 -1
- package/dist/server/app-rsc-errors.js.map +1 -1
- package/dist/server/app-rsc-handler.d.ts +18 -1
- package/dist/server/app-rsc-handler.js +55 -16
- package/dist/server/app-rsc-handler.js.map +1 -1
- package/dist/server/app-rsc-render-mode.d.ts +11 -0
- package/dist/server/app-rsc-render-mode.js +21 -0
- package/dist/server/app-rsc-render-mode.js.map +1 -0
- package/dist/server/app-rsc-request-normalization.d.ts +4 -1
- package/dist/server/app-rsc-request-normalization.js +7 -2
- package/dist/server/app-rsc-request-normalization.js.map +1 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
- package/dist/server/app-rsc-response-finalizer.js +6 -1
- package/dist/server/app-rsc-response-finalizer.js.map +1 -1
- package/dist/server/app-rsc-route-matching.d.ts +23 -0
- package/dist/server/app-rsc-route-matching.js +45 -23
- package/dist/server/app-rsc-route-matching.js.map +1 -1
- package/dist/server/app-segment-config.js.map +1 -1
- package/dist/server/app-server-action-execution.d.ts +51 -5
- package/dist/server/app-server-action-execution.js +161 -51
- package/dist/server/app-server-action-execution.js.map +1 -1
- package/dist/server/app-ssr-entry.d.ts +7 -0
- package/dist/server/app-ssr-entry.js +44 -14
- package/dist/server/app-ssr-entry.js.map +1 -1
- package/dist/server/app-ssr-error-meta.d.ts +14 -0
- package/dist/server/app-ssr-error-meta.js +50 -0
- package/dist/server/app-ssr-error-meta.js.map +1 -0
- package/dist/server/app-ssr-stream.d.ts +1 -1
- package/dist/server/app-ssr-stream.js +9 -12
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/app-static-generation.js.map +1 -1
- package/dist/server/artifact-compatibility.d.ts +12 -2
- package/dist/server/artifact-compatibility.js +12 -8
- package/dist/server/artifact-compatibility.js.map +1 -1
- package/dist/server/cache-control.js +1 -0
- package/dist/server/cache-control.js.map +1 -1
- package/dist/server/cache-proof.d.ts +124 -5
- package/dist/server/cache-proof.js +416 -18
- package/dist/server/cache-proof.js.map +1 -1
- package/dist/server/csp.js.map +1 -1
- package/dist/server/dev-error-overlay-store.js.map +1 -1
- package/dist/server/dev-error-overlay.js +5 -0
- package/dist/server/dev-error-overlay.js.map +1 -1
- package/dist/server/dev-lockfile.d.ts +110 -0
- package/dist/server/dev-lockfile.js +180 -0
- package/dist/server/dev-lockfile.js.map +1 -0
- package/dist/server/dev-module-runner.js.map +1 -1
- package/dist/server/dev-origin-check.js.map +1 -1
- package/dist/server/dev-route-files.js.map +1 -1
- package/dist/server/dev-server.js +23 -10
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/file-based-metadata.d.ts +13 -0
- package/dist/server/file-based-metadata.js +49 -2
- package/dist/server/file-based-metadata.js.map +1 -1
- package/dist/server/headers.d.ts +81 -0
- package/dist/server/headers.js +104 -0
- package/dist/server/headers.js.map +1 -0
- package/dist/server/html.js +1 -1
- package/dist/server/html.js.map +1 -1
- package/dist/server/http-error-responses.d.ts +10 -0
- package/dist/server/http-error-responses.js +11 -1
- package/dist/server/http-error-responses.js.map +1 -1
- package/dist/server/image-optimization.d.ts +11 -1
- package/dist/server/image-optimization.js.map +1 -1
- package/dist/server/implicit-tags.js +2 -1
- package/dist/server/implicit-tags.js.map +1 -1
- package/dist/server/instrumentation-runtime.js.map +1 -1
- package/dist/server/instrumentation.js.map +1 -1
- package/dist/server/isr-cache.d.ts +12 -2
- package/dist/server/isr-cache.js +16 -5
- package/dist/server/isr-cache.js.map +1 -1
- package/dist/server/metadata-route-build-data.js.map +1 -1
- package/dist/server/metadata-route-response.js +22 -5
- package/dist/server/metadata-route-response.js.map +1 -1
- package/dist/server/metadata-routes.js +27 -8
- package/dist/server/metadata-routes.js.map +1 -1
- package/dist/server/middleware-matcher.js.map +1 -1
- package/dist/server/middleware-request-headers.d.ts +4 -1
- package/dist/server/middleware-request-headers.js +15 -8
- package/dist/server/middleware-request-headers.js.map +1 -1
- package/dist/server/middleware-response-headers.d.ts +2 -1
- package/dist/server/middleware-response-headers.js +1 -1
- package/dist/server/middleware-response-headers.js.map +1 -1
- package/dist/server/middleware-runtime.d.ts +1 -0
- package/dist/server/middleware-runtime.js +7 -3
- package/dist/server/middleware-runtime.js.map +1 -1
- package/dist/server/middleware.d.ts +12 -0
- package/dist/server/middleware.js +12 -0
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/navigation-planner.d.ts +133 -0
- package/dist/server/navigation-planner.js +432 -0
- package/dist/server/navigation-planner.js.map +1 -0
- package/dist/server/navigation-trace.d.ts +19 -2
- package/dist/server/navigation-trace.js +20 -1
- package/dist/server/navigation-trace.js.map +1 -1
- package/dist/server/next-error-digest.d.ts +3 -2
- package/dist/server/next-error-digest.js +4 -2
- package/dist/server/next-error-digest.js.map +1 -1
- package/dist/server/normalize-path.d.ts +2 -1
- package/dist/server/normalize-path.js +4 -1
- package/dist/server/normalize-path.js.map +1 -1
- package/dist/server/pages-api-route.js +1 -0
- package/dist/server/pages-api-route.js.map +1 -1
- package/dist/server/pages-i18n.js.map +1 -1
- package/dist/server/pages-media-type.js.map +1 -1
- package/dist/server/pages-node-compat.js.map +1 -1
- package/dist/server/pages-page-data.d.ts +3 -2
- package/dist/server/pages-page-data.js +27 -5
- package/dist/server/pages-page-data.js.map +1 -1
- package/dist/server/pages-page-response.js +2 -1
- package/dist/server/pages-page-response.js.map +1 -1
- package/dist/server/prerender-work-unit-setup.js +1 -1
- package/dist/server/prerender-work-unit-setup.js.map +1 -1
- package/dist/server/prod-server.d.ts +28 -1
- package/dist/server/prod-server.js +97 -22
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/request-log.js.map +1 -1
- package/dist/server/request-pipeline.d.ts +1 -13
- package/dist/server/request-pipeline.js +3 -25
- package/dist/server/request-pipeline.js.map +1 -1
- package/dist/server/rsc-stream-hints.js.map +1 -1
- package/dist/server/seed-cache.js.map +1 -1
- package/dist/server/server-action-not-found.d.ts +16 -3
- package/dist/server/server-action-not-found.js +22 -4
- package/dist/server/server-action-not-found.js.map +1 -1
- package/dist/server/server-globals.d.ts +5 -0
- package/dist/server/server-globals.js +37 -0
- package/dist/server/server-globals.js.map +1 -0
- package/dist/server/socket-error-backstop.js.map +1 -1
- package/dist/server/static-file-cache.js +1 -1
- package/dist/server/static-file-cache.js.map +1 -1
- package/dist/server/worker-utils.d.ts +0 -7
- package/dist/server/worker-utils.js +3 -2
- package/dist/server/worker-utils.js.map +1 -1
- package/dist/shims/amp.js.map +1 -1
- package/dist/shims/app.d.ts +37 -4
- package/dist/shims/app.js +50 -1
- package/dist/shims/app.js.map +1 -0
- package/dist/shims/cache-for-request.js.map +1 -1
- package/dist/shims/cache-runtime.d.ts +19 -2
- package/dist/shims/cache-runtime.js +87 -19
- package/dist/shims/cache-runtime.js.map +1 -1
- package/dist/shims/cache.d.ts +20 -21
- package/dist/shims/cache.js +101 -15
- package/dist/shims/cache.js.map +1 -1
- package/dist/shims/client-hook-error.js.map +1 -1
- package/dist/shims/compat-router.js.map +1 -1
- package/dist/shims/config.js.map +1 -1
- package/dist/shims/constants.js.map +1 -1
- package/dist/shims/document.js.map +1 -1
- package/dist/shims/dynamic.d.ts +18 -10
- package/dist/shims/dynamic.js +107 -51
- package/dist/shims/dynamic.js.map +1 -1
- package/dist/shims/error-boundary.d.ts +35 -6
- package/dist/shims/error-boundary.js +116 -33
- package/dist/shims/error-boundary.js.map +1 -1
- package/dist/shims/error.d.ts +18 -1
- package/dist/shims/error.js +56 -1
- package/dist/shims/error.js.map +1 -1
- package/dist/shims/fetch-cache.d.ts +25 -1
- package/dist/shims/fetch-cache.js +159 -13
- package/dist/shims/fetch-cache.js.map +1 -1
- package/dist/shims/font-google-base.d.ts +22 -8
- package/dist/shims/font-google-base.js +41 -71
- package/dist/shims/font-google-base.js.map +1 -1
- package/dist/shims/font-local.d.ts +3 -20
- package/dist/shims/font-local.js +23 -75
- package/dist/shims/font-local.js.map +1 -1
- package/dist/shims/font-utils.d.ts +51 -0
- package/dist/shims/font-utils.js +97 -0
- package/dist/shims/font-utils.js.map +1 -0
- package/dist/shims/form.js +3 -1
- package/dist/shims/form.js.map +1 -1
- package/dist/shims/hash-scroll.d.ts +7 -0
- package/dist/shims/hash-scroll.js +30 -0
- package/dist/shims/hash-scroll.js.map +1 -0
- package/dist/shims/head-state.js.map +1 -1
- package/dist/shims/head.d.ts +3 -1
- package/dist/shims/head.js +28 -16
- package/dist/shims/head.js.map +1 -1
- package/dist/shims/headers.d.ts +11 -12
- package/dist/shims/headers.js +45 -8
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/i18n-context.js.map +1 -1
- package/dist/shims/i18n-state.js.map +1 -1
- package/dist/shims/image-config.d.ts +14 -1
- package/dist/shims/image-config.js +24 -1
- package/dist/shims/image-config.js.map +1 -1
- package/dist/shims/image.d.ts +1 -0
- package/dist/shims/image.js +159 -80
- package/dist/shims/image.js.map +1 -1
- package/dist/shims/internal/als-registry.js.map +1 -1
- package/dist/shims/internal/app-router-context.d.ts +7 -6
- package/dist/shims/internal/app-router-context.js +17 -6
- package/dist/shims/internal/app-router-context.js.map +1 -1
- package/dist/shims/internal/cookie-serialize.js.map +1 -1
- package/dist/shims/internal/make-hanging-promise.d.ts +1 -1
- package/dist/shims/internal/make-hanging-promise.js +1 -1
- package/dist/shims/internal/make-hanging-promise.js.map +1 -1
- package/dist/shims/internal/parse-cookie-header.js.map +1 -1
- package/dist/shims/internal/utils.js.map +1 -1
- package/dist/shims/internal/work-unit-async-storage.js +2 -2
- package/dist/shims/internal/work-unit-async-storage.js.map +1 -1
- package/dist/shims/layout-segment-context.js.map +1 -1
- package/dist/shims/legacy-image.js.map +1 -1
- package/dist/shims/link-prefetch.d.ts +42 -0
- package/dist/shims/link-prefetch.js +45 -0
- package/dist/shims/link-prefetch.js.map +1 -0
- package/dist/shims/link.d.ts +37 -4
- package/dist/shims/link.js +156 -46
- package/dist/shims/link.js.map +1 -1
- package/dist/shims/metadata.d.ts +16 -30
- package/dist/shims/metadata.js +87 -28
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation-state.js.map +1 -1
- package/dist/shims/navigation.d.ts +172 -10
- package/dist/shims/navigation.js +335 -70
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/navigation.react-server.d.ts +3 -2
- package/dist/shims/navigation.react-server.js +5 -2
- package/dist/shims/navigation.react-server.js.map +1 -1
- package/dist/shims/offline.js.map +1 -1
- package/dist/shims/pages-router-runtime.d.ts +7 -0
- package/dist/shims/pages-router-runtime.js +16 -0
- package/dist/shims/pages-router-runtime.js.map +1 -0
- package/dist/shims/readonly-url-search-params.js.map +1 -1
- package/dist/shims/request-context.js.map +1 -1
- package/dist/shims/root-params.js.map +1 -1
- package/dist/shims/router-state.js.map +1 -1
- package/dist/shims/router.d.ts +69 -7
- package/dist/shims/router.js +232 -249
- package/dist/shims/router.js.map +1 -1
- package/dist/shims/script-nonce-context.js.map +1 -1
- package/dist/shims/script.js +110 -32
- package/dist/shims/script.js.map +1 -1
- package/dist/shims/server.js +12 -15
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/slot.d.ts +7 -1
- package/dist/shims/slot.js +60 -7
- package/dist/shims/slot.js.map +1 -1
- package/dist/shims/thenable-params.js.map +1 -1
- package/dist/shims/unified-request-context.js +5 -0
- package/dist/shims/unified-request-context.js.map +1 -1
- package/dist/shims/unrecognized-action-error.d.ts +35 -0
- package/dist/shims/unrecognized-action-error.js +41 -0
- package/dist/shims/unrecognized-action-error.js.map +1 -0
- package/dist/shims/url-safety.js.map +1 -1
- package/dist/shims/url-utils.d.ts +22 -1
- package/dist/shims/url-utils.js +76 -3
- package/dist/shims/url-utils.js.map +1 -1
- package/dist/shims/use-merged-ref.js.map +1 -1
- package/dist/shims/web-vitals.d.ts +4 -21
- package/dist/shims/web-vitals.js +19 -6
- package/dist/shims/web-vitals.js.map +1 -1
- package/dist/utils/asset-prefix.d.ts +69 -0
- package/dist/utils/asset-prefix.js +91 -0
- package/dist/utils/asset-prefix.js.map +1 -0
- package/dist/utils/base-path.d.ts +7 -1
- package/dist/utils/base-path.js +10 -1
- package/dist/utils/base-path.js.map +1 -1
- package/dist/utils/cache-control-metadata.js.map +1 -1
- package/dist/utils/domain-locale.js.map +1 -1
- package/dist/utils/encode-cache-tag.d.ts +31 -0
- package/dist/utils/encode-cache-tag.js +38 -0
- package/dist/utils/encode-cache-tag.js.map +1 -0
- package/dist/utils/error-cause.js.map +1 -1
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/lazy-chunks.js.map +1 -1
- package/dist/utils/manifest-paths.js.map +1 -1
- package/dist/utils/mdx-scan.js.map +1 -1
- package/dist/utils/navigation-signal.d.ts +5 -0
- package/dist/utils/navigation-signal.js +14 -0
- package/dist/utils/navigation-signal.js.map +1 -0
- package/dist/utils/project.js.map +1 -1
- package/dist/utils/public-routes.js.map +1 -1
- package/dist/utils/query.js.map +1 -1
- package/dist/utils/safe-json-file.js.map +1 -1
- package/dist/utils/sorted-array.d.ts +9 -0
- package/dist/utils/sorted-array.js +22 -0
- package/dist/utils/sorted-array.js.map +1 -0
- package/dist/utils/text-stream.js.map +1 -1
- package/dist/utils/vinext-root.js.map +1 -1
- package/package.json +8 -6
package/dist/index.js
CHANGED
|
@@ -3,14 +3,15 @@ import { normalizePathnameForRouteMatchStrict } from "./routing/utils.js";
|
|
|
3
3
|
import { createValidFileMatcher } from "./routing/file-matcher.js";
|
|
4
4
|
import { hasBasePath, removeTrailingSlash } from "./utils/base-path.js";
|
|
5
5
|
import { apiRouter, invalidateRouteCache, matchRoute, pagesRouter } from "./routing/pages-router.js";
|
|
6
|
+
import { INTERNAL_HEADERS, VINEXT_MW_CTX_HEADER, VINEXT_TIMING_HEADER } from "./server/headers.js";
|
|
6
7
|
import { buildRequestHeadersFromMiddlewareResponse } from "./server/middleware-request-headers.js";
|
|
7
8
|
import { normalizePath as normalizePath$1 } from "./server/normalize-path.js";
|
|
8
9
|
import { isExternalUrl, matchHeaders, matchRedirect, matchRewrite, proxyExternalRequest, requestContextFromRequest, sanitizeDestination } from "./config/config-matchers.js";
|
|
9
|
-
import {
|
|
10
|
+
import { filterInternalHeaders, isOpenRedirectShaped } from "./server/request-pipeline.js";
|
|
10
11
|
import { findMiddlewareFile, runMiddleware } from "./server/middleware.js";
|
|
11
12
|
import { generateServerEntry } from "./entries/pages-server-entry.js";
|
|
12
13
|
import { generateClientEntry } from "./entries/pages-client-entry.js";
|
|
13
|
-
import { appRouter, invalidateAppRouteCache } from "./routing/app-router.js";
|
|
14
|
+
import { appRouteGraph, appRouter, invalidateAppRouteCache } from "./routing/app-router.js";
|
|
14
15
|
import { findInstrumentationClientFile, findInstrumentationFile, runInstrumentation } from "./server/instrumentation.js";
|
|
15
16
|
import { logRequest, now } from "./server/request-log.js";
|
|
16
17
|
import { createSSRHandler } from "./server/dev-server.js";
|
|
@@ -26,20 +27,23 @@ import { generateBrowserEntry } from "./entries/app-browser-entry.js";
|
|
|
26
27
|
import { collectRouteClassificationManifest } from "./build/route-classification-manifest.js";
|
|
27
28
|
import { planRouteClassificationInjection } from "./build/route-classification-injector.js";
|
|
28
29
|
import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD } from "./shims/constants.js";
|
|
30
|
+
import { RESOLVED_VIRTUAL_GOOGLE_FONTS, VIRTUAL_GOOGLE_FONTS, createGoogleFontsPlugin, createLocalFontsPlugin, generateGoogleFontsVirtualModule, parseStaticObjectLiteral } from "./plugins/fonts.js";
|
|
29
31
|
import { findNextConfigPath, loadNextConfig, resolveNextConfig, resolveNextConfigInput } from "./config/next-config.js";
|
|
30
32
|
import { precompressAssets } from "./build/precompress.js";
|
|
31
33
|
import { manifestFileWithBase, manifestFilesWithBase } from "./utils/manifest-paths.js";
|
|
34
|
+
import { ASSET_PREFIX_URL_DIR, resolveAssetUrlPrefix, resolveAssetsDir } from "./utils/asset-prefix.js";
|
|
32
35
|
import { asyncHooksStubPlugin } from "./plugins/async-hooks-stub.js";
|
|
33
36
|
import { clientReferenceDedupPlugin } from "./plugins/client-reference-dedup.js";
|
|
37
|
+
import { createRscClientReferenceLoadersPlugin } from "./plugins/rsc-client-reference-loaders.js";
|
|
34
38
|
import { createInstrumentationClientTransformPlugin } from "./plugins/instrumentation-client.js";
|
|
35
39
|
import { createOptimizeImportsPlugin } from "./plugins/optimize-imports.js";
|
|
36
40
|
import { createOgInlineFetchAssetsPlugin, ogAssetsPlugin } from "./plugins/og-assets.js";
|
|
37
41
|
import { SSR_EXTERNAL_REACT_ENTRIES, VINEXT_OPTIMIZE_DEPS_EXCLUDE, mergeOptimizeDepsExclude } from "./plugins/rsc-client-shim-excludes.js";
|
|
38
42
|
import { createServerExternalsManifestPlugin } from "./plugins/server-externals-manifest.js";
|
|
39
|
-
import { RESOLVED_VIRTUAL_GOOGLE_FONTS, VIRTUAL_GOOGLE_FONTS, createGoogleFontsPlugin, createLocalFontsPlugin, generateGoogleFontsVirtualModule, parseStaticObjectLiteral } from "./plugins/fonts.js";
|
|
40
43
|
import { computeLazyChunks } from "./utils/lazy-chunks.js";
|
|
41
44
|
import { formatMissingCloudflarePluginError, hasWranglerConfig } from "./deploy.js";
|
|
42
45
|
import { resolvePostcssStringPlugins } from "./plugins/postcss.js";
|
|
46
|
+
import { buildSassPreprocessorOptions } from "./plugins/sass.js";
|
|
43
47
|
import { createClientCodeSplittingConfig, createClientManualChunks, createClientOutputConfig, getBuildBundlerOptions, getClientTreeshakeConfigForVite, withBuildBundlerOptions } from "./build/client-build-config.js";
|
|
44
48
|
import { augmentSsrManifestFromBundle, relativeWithinRoot, tryRealpathSync } from "./build/ssr-manifest.js";
|
|
45
49
|
import { stripServerExports } from "./plugins/strip-server-exports.js";
|
|
@@ -49,14 +53,18 @@ import { staticExportApp, staticExportPages } from "./build/static-export.js";
|
|
|
49
53
|
import { createRequire } from "node:module";
|
|
50
54
|
import fs from "node:fs";
|
|
51
55
|
import path from "node:path";
|
|
52
|
-
import { loadEnv, parseAst } from "vite";
|
|
56
|
+
import { loadEnv, parseAst, transformWithOxc } from "vite";
|
|
53
57
|
import { pathToFileURL } from "node:url";
|
|
54
|
-
import { randomBytes } from "node:crypto";
|
|
58
|
+
import { randomBytes, randomUUID } from "node:crypto";
|
|
59
|
+
import commonjs from "vite-plugin-commonjs";
|
|
55
60
|
import MagicString from "magic-string";
|
|
56
61
|
import tsconfigPaths from "vite-tsconfig-paths";
|
|
57
|
-
import commonjs from "vite-plugin-commonjs";
|
|
58
62
|
//#region src/index.ts
|
|
59
63
|
installSocketErrorBackstop();
|
|
64
|
+
function createRscCompatibilityId(nextConfig) {
|
|
65
|
+
if (nextConfig.deploymentId) return nextConfig.deploymentId;
|
|
66
|
+
return randomUUID();
|
|
67
|
+
}
|
|
60
68
|
const __dirname = import.meta.dirname;
|
|
61
69
|
function resolveOptionalDependency(projectRoot, specifier) {
|
|
62
70
|
try {
|
|
@@ -184,6 +192,27 @@ function getViteMajorVersion() {
|
|
|
184
192
|
return 7;
|
|
185
193
|
}
|
|
186
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Read the vinext package version once at plugin load. Surfaced via
|
|
197
|
+
* `process.env.__NEXT_VERSION` define so `window.next.version` lands a
|
|
198
|
+
* real string instead of the `"vinext"` fallback. Resolved relative to
|
|
199
|
+
* this module's own `package.json`, not the project root.
|
|
200
|
+
*
|
|
201
|
+
* Defaults to `"vinext"` on read failure so a malformed install never
|
|
202
|
+
* breaks the build — only the diagnostic global loses fidelity.
|
|
203
|
+
*/
|
|
204
|
+
let _vinextVersionCache = null;
|
|
205
|
+
function getVinextVersion() {
|
|
206
|
+
if (_vinextVersionCache !== null) return _vinextVersionCache;
|
|
207
|
+
try {
|
|
208
|
+
const pkgUrl = new URL("../package.json", import.meta.url);
|
|
209
|
+
const pkg = JSON.parse(fs.readFileSync(pkgUrl, "utf-8"));
|
|
210
|
+
_vinextVersionCache = typeof pkg.version === "string" ? pkg.version : "vinext";
|
|
211
|
+
} catch {
|
|
212
|
+
_vinextVersionCache = "vinext";
|
|
213
|
+
}
|
|
214
|
+
return _vinextVersionCache;
|
|
215
|
+
}
|
|
187
216
|
const _tsconfigAliasCache = /* @__PURE__ */ new Map();
|
|
188
217
|
function resolveTsconfigAliases(projectRoot) {
|
|
189
218
|
if (_tsconfigAliasCache.has(projectRoot)) return _tsconfigAliasCache.get(projectRoot);
|
|
@@ -217,6 +246,51 @@ const _fontGoogleShimPath = resolveShimModulePath(_shimsDir, "font-google");
|
|
|
217
246
|
function isValidExportIdentifier(name) {
|
|
218
247
|
return /^[$A-Z_a-z][$\w]*$/.test(name);
|
|
219
248
|
}
|
|
249
|
+
/**
|
|
250
|
+
* Returns true when `code` starts with a React `"use client"` or `"use server"`
|
|
251
|
+
* directive (after stripping leading comments, hashbang, and whitespace).
|
|
252
|
+
*
|
|
253
|
+
* Used by `vinext:jsx-in-js` to opt `.js` files inside `node_modules` into the
|
|
254
|
+
* JSX transform. We mirror `@vitejs/plugin-rsc`'s detection by looking at the
|
|
255
|
+
* directive prologue rather than scanning the whole file — `code.includes`
|
|
256
|
+
* alone would match incidental occurrences in template literals or comments.
|
|
257
|
+
*/
|
|
258
|
+
function hasReactDirective(code) {
|
|
259
|
+
let i = 0;
|
|
260
|
+
const len = code.length;
|
|
261
|
+
if (code.charCodeAt(0) === 65279) i = 1;
|
|
262
|
+
if (code[i] === "#" && code[i + 1] === "!") {
|
|
263
|
+
const nl = code.indexOf("\n", i);
|
|
264
|
+
if (nl === -1) return false;
|
|
265
|
+
i = nl + 1;
|
|
266
|
+
}
|
|
267
|
+
while (i < len) {
|
|
268
|
+
while (i < len && /\s/.test(code[i] ?? "")) i++;
|
|
269
|
+
if (i >= len) return false;
|
|
270
|
+
if (code[i] === "/" && code[i + 1] === "/") {
|
|
271
|
+
const nl = code.indexOf("\n", i + 2);
|
|
272
|
+
if (nl === -1) return false;
|
|
273
|
+
i = nl + 1;
|
|
274
|
+
continue;
|
|
275
|
+
}
|
|
276
|
+
if (code[i] === "/" && code[i + 1] === "*") {
|
|
277
|
+
const end = code.indexOf("*/", i + 2);
|
|
278
|
+
if (end === -1) return false;
|
|
279
|
+
i = end + 2;
|
|
280
|
+
continue;
|
|
281
|
+
}
|
|
282
|
+
const quote = code[i];
|
|
283
|
+
if (quote !== "\"" && quote !== "'") return false;
|
|
284
|
+
const closing = code.indexOf(quote, i + 1);
|
|
285
|
+
if (closing === -1) return false;
|
|
286
|
+
const directive = code.slice(i + 1, closing);
|
|
287
|
+
if (directive === "use client" || directive === "use server") return true;
|
|
288
|
+
i = closing + 1;
|
|
289
|
+
while (i < len && (code[i] === ";" || code[i] === " " || code[i] === " ")) i++;
|
|
290
|
+
if (code[i] === "\n") i++;
|
|
291
|
+
}
|
|
292
|
+
return false;
|
|
293
|
+
}
|
|
220
294
|
function generateRootParamsModule(rootParamNames) {
|
|
221
295
|
const names = Array.from(new Set(rootParamNames)).filter(isValidExportIdentifier).sort();
|
|
222
296
|
if (names.length === 0) return "export {};\n";
|
|
@@ -264,6 +338,7 @@ function vinext(options = {}) {
|
|
|
264
338
|
let hasCloudflarePlugin = false;
|
|
265
339
|
let warnedInlineNextConfigOverride = false;
|
|
266
340
|
let hasNitroPlugin = false;
|
|
341
|
+
let rscCompatibilityId;
|
|
267
342
|
let rscClassificationManifest = null;
|
|
268
343
|
const shimsDir = path.resolve(__dirname, "shims");
|
|
269
344
|
const canonicalize = (p) => tryRealpathSync(p) ?? p;
|
|
@@ -359,6 +434,27 @@ function vinext(options = {}) {
|
|
|
359
434
|
...viteMajorVersion >= 8 ? [] : [tsconfigPaths()],
|
|
360
435
|
reactPluginPromise,
|
|
361
436
|
commonjs(),
|
|
437
|
+
...viteMajorVersion >= 8 ? [{
|
|
438
|
+
name: "vinext:jsx-in-js",
|
|
439
|
+
enforce: "pre",
|
|
440
|
+
async transform(code, id) {
|
|
441
|
+
const cleanId = id.split("?")[0];
|
|
442
|
+
if (!/\.(m?js)$/.test(cleanId)) return;
|
|
443
|
+
if (cleanId.includes("/node_modules/")) {
|
|
444
|
+
if (!code.includes("use client") && !code.includes("use server")) return;
|
|
445
|
+
if (!hasReactDirective(code)) return;
|
|
446
|
+
}
|
|
447
|
+
const result = await transformWithOxc(code, id, {
|
|
448
|
+
lang: "jsx",
|
|
449
|
+
jsx: { runtime: "automatic" },
|
|
450
|
+
sourcemap: true
|
|
451
|
+
});
|
|
452
|
+
return {
|
|
453
|
+
code: result.code,
|
|
454
|
+
map: result.map
|
|
455
|
+
};
|
|
456
|
+
}
|
|
457
|
+
}] : [],
|
|
362
458
|
{
|
|
363
459
|
name: "vinext:config",
|
|
364
460
|
enforce: "pre",
|
|
@@ -403,6 +499,7 @@ function vinext(options = {}) {
|
|
|
403
499
|
} else rawConfig = await loadNextConfig(root, phase);
|
|
404
500
|
nextConfig = await resolveNextConfig(rawConfig, root);
|
|
405
501
|
}
|
|
502
|
+
rscCompatibilityId ??= createRscCompatibilityId(nextConfig);
|
|
406
503
|
fileMatcher = createValidFileMatcher(nextConfig.pageExtensions);
|
|
407
504
|
instrumentationPath = findInstrumentationFile(root, fileMatcher);
|
|
408
505
|
instrumentationClientPath = findInstrumentationClientFile(root, fileMatcher);
|
|
@@ -414,6 +511,7 @@ function vinext(options = {}) {
|
|
|
414
511
|
defines[`process.env.${key}`] = JSON.stringify(value);
|
|
415
512
|
}
|
|
416
513
|
defines["process.env.__NEXT_ROUTER_BASEPATH"] = JSON.stringify(nextConfig.basePath);
|
|
514
|
+
defines["process.env.__VINEXT_TRAILING_SLASH"] = JSON.stringify(nextConfig.trailingSlash ? "true" : "false");
|
|
417
515
|
defines["process.env.__VINEXT_IMAGE_REMOTE_PATTERNS"] = JSON.stringify(JSON.stringify(nextConfig.images?.remotePatterns ?? []));
|
|
418
516
|
defines["process.env.__VINEXT_IMAGE_DOMAINS"] = JSON.stringify(JSON.stringify(nextConfig.images?.domains ?? []));
|
|
419
517
|
{
|
|
@@ -441,8 +539,12 @@ function vinext(options = {}) {
|
|
|
441
539
|
defines["process.env.__VINEXT_IMAGE_SIZES"] = JSON.stringify(JSON.stringify(imageSizes));
|
|
442
540
|
}
|
|
443
541
|
defines["process.env.__VINEXT_IMAGE_DANGEROUSLY_ALLOW_SVG"] = JSON.stringify(String(nextConfig.images?.dangerouslyAllowSVG ?? false));
|
|
542
|
+
defines["process.env.__VINEXT_IMAGE_DANGEROUSLY_ALLOW_LOCAL_IP"] = JSON.stringify(String(nextConfig.images?.dangerouslyAllowLocalIP ?? false));
|
|
444
543
|
defines["process.env.__VINEXT_DRAFT_SECRET"] = JSON.stringify(crypto.randomUUID());
|
|
445
544
|
defines["process.env.__VINEXT_BUILD_ID"] = JSON.stringify(nextConfig.buildId);
|
|
545
|
+
defines["process.env.__VINEXT_RSC_COMPATIBILITY_ID"] = JSON.stringify(rscCompatibilityId);
|
|
546
|
+
defines["process.env.__VINEXT_DEPLOYMENT_ID"] = JSON.stringify(nextConfig.deploymentId ?? "");
|
|
547
|
+
defines["process.env.__NEXT_VERSION"] = JSON.stringify(getVinextVersion());
|
|
446
548
|
nextShimMap = Object.fromEntries(Object.entries({
|
|
447
549
|
"next/link": path.join(shimsDir, "link"),
|
|
448
550
|
"next/head": path.join(shimsDir, "head"),
|
|
@@ -489,6 +591,7 @@ function vinext(options = {}) {
|
|
|
489
591
|
"vinext/cache-runtime": path.join(shimsDir, "cache-runtime"),
|
|
490
592
|
"vinext/navigation-state": path.join(shimsDir, "navigation-state"),
|
|
491
593
|
"vinext/unified-request-context": path.join(shimsDir, "unified-request-context"),
|
|
594
|
+
"vinext/pages-router-runtime": path.join(shimsDir, "pages-router-runtime"),
|
|
492
595
|
"vinext/router-state": path.join(shimsDir, "router-state"),
|
|
493
596
|
"vinext/head-state": path.join(shimsDir, "head-state"),
|
|
494
597
|
"vinext/i18n-state": path.join(shimsDir, "i18n-state"),
|
|
@@ -509,26 +612,37 @@ function vinext(options = {}) {
|
|
|
509
612
|
hasNitroPlugin = pluginsFlat.some((p) => p && typeof p === "object" && "name" in p && typeof p.name === "string" && (p.name === "nitro" || p.name.startsWith("nitro:")));
|
|
510
613
|
let postcssOverride;
|
|
511
614
|
if (!config.css?.postcss || typeof config.css.postcss === "string") postcssOverride = await resolvePostcssStringPlugins(root);
|
|
615
|
+
const sassPreprocessorOptions = buildSassPreprocessorOptions(nextConfig.sassOptions);
|
|
512
616
|
hasUserMdxPlugin = pluginsFlat.some((p) => p && typeof p === "object" && "name" in p && typeof p.name === "string" && (p.name === "@mdx-js/rollup" || p.name === "mdx"));
|
|
513
617
|
if (!hasUserMdxPlugin && hasMdxFiles(root, hasAppDir ? appDir : null, hasPagesDir ? pagesDir : null)) await ensureMdxDelegate("detected");
|
|
514
618
|
const isSSR = !!config.build?.ssr;
|
|
515
619
|
const isMultiEnv = hasAppDir || hasCloudflarePlugin || hasNitroPlugin;
|
|
516
620
|
const viteConfig = {
|
|
517
621
|
appType: "custom",
|
|
518
|
-
build: {
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
622
|
+
build: {
|
|
623
|
+
ssrEmitAssets: true,
|
|
624
|
+
cssTarget: [
|
|
625
|
+
"chrome111",
|
|
626
|
+
"edge111",
|
|
627
|
+
"firefox114",
|
|
628
|
+
"safari15"
|
|
629
|
+
],
|
|
630
|
+
...nextConfig.assetPrefix ? { assetsDir: resolveAssetsDir(nextConfig.assetPrefix) } : {},
|
|
631
|
+
...withBuildBundlerOptions(viteMajorVersion, {
|
|
632
|
+
onwarn: (() => {
|
|
633
|
+
const userOnwarn = getBuildBundlerOptions(config.build)?.onwarn;
|
|
634
|
+
return (warning, defaultHandler) => {
|
|
635
|
+
if (warning.code === "MODULE_LEVEL_DIRECTIVE" && (warning.message?.includes("\"use client\"") || warning.message?.includes("\"use server\""))) return;
|
|
636
|
+
if (warning.code === "IMPORT_IS_UNDEFINED" && warning.message?.includes("generateStaticParams")) return;
|
|
637
|
+
if (warning.code === "IMPORT_IS_UNDEFINED" && /Import `(?:default|proxy|middleware)` will always be undefined/.test(warning.message ?? "") && /\b(?:proxy|middleware)\.\w+\b/.test(warning.message ?? "") && (warning.message?.includes("virtual:vinext-rsc-entry") || warning.message?.includes("virtual:vinext-server-entry"))) return;
|
|
638
|
+
if (userOnwarn) userOnwarn(warning, defaultHandler);
|
|
639
|
+
else defaultHandler(warning);
|
|
640
|
+
};
|
|
641
|
+
})(),
|
|
642
|
+
...!isSSR && !isMultiEnv ? { treeshake: getClientTreeshakeConfigForVite(viteMajorVersion) } : {},
|
|
643
|
+
...!isSSR && !isMultiEnv ? { output: getClientOutputConfigForVite(viteMajorVersion) } : {}
|
|
644
|
+
})
|
|
645
|
+
},
|
|
532
646
|
server: { cors: {
|
|
533
647
|
preflightContinue: true,
|
|
534
648
|
origin: /^https?:\/\/(?:(?:[^:]+\.)?localhost|127\.0\.0\.1|\[::1\])(?::\d+)?$/
|
|
@@ -537,7 +651,8 @@ function vinext(options = {}) {
|
|
|
537
651
|
external: [
|
|
538
652
|
"react",
|
|
539
653
|
"react-dom",
|
|
540
|
-
"react-dom/server"
|
|
654
|
+
"react-dom/server",
|
|
655
|
+
"ipaddr.js"
|
|
541
656
|
],
|
|
542
657
|
noExternal: true
|
|
543
658
|
} },
|
|
@@ -558,7 +673,18 @@ function vinext(options = {}) {
|
|
|
558
673
|
...viteMajorVersion >= 8 ? { oxc: { jsx: { runtime: "automatic" } } } : { esbuild: { jsx: "automatic" } },
|
|
559
674
|
define: defines,
|
|
560
675
|
...nextConfig.basePath ? { base: nextConfig.basePath + "/" } : {},
|
|
561
|
-
...
|
|
676
|
+
...nextConfig.assetPrefix ? { experimental: { renderBuiltUrl: (filename) => {
|
|
677
|
+
const urlPrefix = resolveAssetUrlPrefix(nextConfig.assetPrefix);
|
|
678
|
+
const dirPrefix = resolveAssetsDir(nextConfig.assetPrefix) + "/";
|
|
679
|
+
return urlPrefix + (filename.startsWith(dirPrefix) ? filename.slice(dirPrefix.length) : filename.startsWith(`_next/static/`) ? filename.slice(ASSET_PREFIX_URL_DIR.length + 1) : filename);
|
|
680
|
+
} } } : {},
|
|
681
|
+
...postcssOverride || sassPreprocessorOptions ? { css: {
|
|
682
|
+
...postcssOverride ? { postcss: postcssOverride } : {},
|
|
683
|
+
...sassPreprocessorOptions ? { preprocessorOptions: {
|
|
684
|
+
scss: sassPreprocessorOptions,
|
|
685
|
+
sass: sassPreprocessorOptions
|
|
686
|
+
} } : {}
|
|
687
|
+
} } : {}
|
|
562
688
|
};
|
|
563
689
|
const nextServerExternal = nextConfig?.serverExternalPackages ?? [];
|
|
564
690
|
const userSsrExternal = Array.isArray(config.ssr?.external) ? [...config.ssr.external, ...nextServerExternal] : config.ssr?.external === true ? true : nextServerExternal;
|
|
@@ -603,11 +729,11 @@ function vinext(options = {}) {
|
|
|
603
729
|
},
|
|
604
730
|
ssr: {
|
|
605
731
|
...hasCloudflarePlugin || hasNitroPlugin ? {} : { resolve: {
|
|
606
|
-
external: userSsrExternal === true ? true : [...userSsrExternal],
|
|
732
|
+
external: userSsrExternal === true ? true : [...userSsrExternal, "ipaddr.js"],
|
|
607
733
|
...userSsrExternal === true ? {} : { noExternal: true }
|
|
608
734
|
} },
|
|
609
735
|
optimizeDeps: {
|
|
610
|
-
exclude: mergeOptimizeDepsExclude(incomingExclude, VINEXT_OPTIMIZE_DEPS_EXCLUDE, userSsrExternal === true ? SSR_EXTERNAL_REACT_ENTRIES : []),
|
|
736
|
+
exclude: mergeOptimizeDepsExclude(incomingExclude, VINEXT_OPTIMIZE_DEPS_EXCLUDE, ["ipaddr.js"], userSsrExternal === true ? SSR_EXTERNAL_REACT_ENTRIES : []),
|
|
611
737
|
entries: optimizeEntries
|
|
612
738
|
},
|
|
613
739
|
build: {
|
|
@@ -672,10 +798,12 @@ function vinext(options = {}) {
|
|
|
672
798
|
external: [
|
|
673
799
|
"react",
|
|
674
800
|
"react-dom",
|
|
675
|
-
"react-dom/server"
|
|
801
|
+
"react-dom/server",
|
|
802
|
+
"ipaddr.js"
|
|
676
803
|
],
|
|
677
804
|
noExternal: true
|
|
678
805
|
},
|
|
806
|
+
optimizeDeps: { exclude: ["ipaddr.js"] },
|
|
679
807
|
build: {
|
|
680
808
|
outDir: "dist/server",
|
|
681
809
|
...withBuildBundlerOptions(viteMajorVersion, {
|
|
@@ -743,6 +871,7 @@ function vinext(options = {}) {
|
|
|
743
871
|
const routes = await appRouter(appDir, nextConfig?.pageExtensions, fileMatcher);
|
|
744
872
|
const metaRoutes = scanMetadataFiles(appDir);
|
|
745
873
|
const globalErrorPath = findFileWithExts(appDir, "global-error", fileMatcher);
|
|
874
|
+
const globalNotFoundPath = findFileWithExts(appDir, "global-not-found", fileMatcher);
|
|
746
875
|
rscClassificationManifest = collectRouteClassificationManifest(routes);
|
|
747
876
|
return generateRscEntry(appDir, routes, middlewarePath, metaRoutes, globalErrorPath, nextConfig?.basePath, nextConfig?.trailingSlash, {
|
|
748
877
|
redirects: nextConfig?.redirects,
|
|
@@ -751,17 +880,23 @@ function vinext(options = {}) {
|
|
|
751
880
|
allowedOrigins: nextConfig?.serverActionsAllowedOrigins,
|
|
752
881
|
allowedDevOrigins: nextConfig?.allowedDevOrigins,
|
|
753
882
|
bodySizeLimit: nextConfig?.serverActionsBodySizeLimit,
|
|
883
|
+
assetPrefix: nextConfig?.assetPrefix,
|
|
754
884
|
expireTime: nextConfig?.expireTime,
|
|
755
885
|
i18n: nextConfig?.i18n,
|
|
756
886
|
hasPagesDir,
|
|
757
|
-
publicFiles: scanPublicFileRoutes(root)
|
|
887
|
+
publicFiles: scanPublicFileRoutes(root),
|
|
888
|
+
globalNotFoundPath
|
|
758
889
|
}, instrumentationPath);
|
|
759
890
|
}
|
|
760
891
|
if (id === RESOLVED_ROOT_PARAMS) return generateRootParamsModule((hasAppDir ? await appRouter(appDir, nextConfig?.pageExtensions, fileMatcher) : []).flatMap((route) => route.rootParamNames ?? []));
|
|
761
892
|
if (id === RESOLVED_APP_SSR_ENTRY && hasAppDir) return generateSsrEntry(hasPagesDir);
|
|
762
|
-
if (id === RESOLVED_APP_BROWSER_ENTRY && hasAppDir)
|
|
893
|
+
if (id === RESOLVED_APP_BROWSER_ENTRY && hasAppDir) {
|
|
894
|
+
const graph = await appRouteGraph(appDir, nextConfig?.pageExtensions, fileMatcher);
|
|
895
|
+
return generateBrowserEntry(graph.routes, graph.routeManifest);
|
|
896
|
+
}
|
|
763
897
|
if (id.startsWith("\0virtual:vinext-google-fonts?")) return generateGoogleFontsVirtualModule(id, _fontGoogleShimPath);
|
|
764
898
|
},
|
|
899
|
+
// @vitejs/plugin-rsc runs the RSC environment build in two phases:
|
|
765
900
|
generateBundle(_options, bundle) {
|
|
766
901
|
if (this.environment?.name !== "rsc") return;
|
|
767
902
|
if (!rscClassificationManifest) return;
|
|
@@ -953,7 +1088,7 @@ function vinext(options = {}) {
|
|
|
953
1088
|
if (typeof reasonOrHeaders === "string") headers = maybeHeaders;
|
|
954
1089
|
else headers = reasonOrHeaders;
|
|
955
1090
|
if (headers && typeof headers === "object" && !Array.isArray(headers)) {
|
|
956
|
-
const timingKey = Object.keys(headers).find((k) => k.toLowerCase() ===
|
|
1091
|
+
const timingKey = Object.keys(headers).find((k) => k.toLowerCase() === VINEXT_TIMING_HEADER);
|
|
957
1092
|
if (timingKey) {
|
|
958
1093
|
_parseTiming(headers[timingKey]);
|
|
959
1094
|
delete headers[timingKey];
|
|
@@ -976,7 +1111,7 @@ function vinext(options = {}) {
|
|
|
976
1111
|
});
|
|
977
1112
|
next();
|
|
978
1113
|
});
|
|
979
|
-
|
|
1114
|
+
const handlePagesMiddleware = async (req, res, next) => {
|
|
980
1115
|
try {
|
|
981
1116
|
let url = req.url ?? "/";
|
|
982
1117
|
if (!hasPagesDir) return next();
|
|
@@ -1021,7 +1156,7 @@ function vinext(options = {}) {
|
|
|
1021
1156
|
if (pathname.includes(".") && !pathname.endsWith(".html")) return next();
|
|
1022
1157
|
if (isOpenRedirectShaped(pathname)) {
|
|
1023
1158
|
res.writeHead(404);
|
|
1024
|
-
res.end("
|
|
1159
|
+
res.end("This page could not be found");
|
|
1025
1160
|
return;
|
|
1026
1161
|
}
|
|
1027
1162
|
pathname = pathname.replaceAll("\\", "/");
|
|
@@ -1074,7 +1209,7 @@ function vinext(options = {}) {
|
|
|
1074
1209
|
};
|
|
1075
1210
|
const applyMwRequestHeadersForExternalProxy = () => {
|
|
1076
1211
|
if (middlewareRequestHeaders) applyRequestHeadersToNodeRequest(middlewareRequestHeaders);
|
|
1077
|
-
else delete req.headers[
|
|
1212
|
+
else delete req.headers[VINEXT_MW_CTX_HEADER];
|
|
1078
1213
|
};
|
|
1079
1214
|
if (middlewarePath) {
|
|
1080
1215
|
const rawProto = process.env.VINEXT_TRUST_PROXY === "1" || (process.env.VINEXT_TRUSTED_HOSTS ?? "").split(",").some((h) => h.trim()) ? String(req.headers["x-forwarded-proto"] || "").split(",")[0].trim() : "";
|
|
@@ -1110,7 +1245,7 @@ function vinext(options = {}) {
|
|
|
1110
1245
|
const currentRequestHeaders = new Headers();
|
|
1111
1246
|
for (const [key, value] of Object.entries(req.headers)) if (Array.isArray(value)) currentRequestHeaders.set(key, value.join(", "));
|
|
1112
1247
|
else if (value !== void 0) currentRequestHeaders.set(key, value);
|
|
1113
|
-
middlewareRequestHeaders = buildRequestHeadersFromMiddlewareResponse(currentRequestHeaders, result.responseHeaders);
|
|
1248
|
+
middlewareRequestHeaders = buildRequestHeadersFromMiddlewareResponse(currentRequestHeaders, result.responseHeaders, { preserveCredentialHeaders: Boolean(result.rewriteUrl && isExternalUrl(result.rewriteUrl)) });
|
|
1114
1249
|
if (middlewareRequestHeaders && !hasAppDir) applyRequestHeadersToNodeRequest(middlewareRequestHeaders);
|
|
1115
1250
|
if (hasAppDir) {
|
|
1116
1251
|
deferredMwResponseHeaders = [];
|
|
@@ -1121,15 +1256,16 @@ function vinext(options = {}) {
|
|
|
1121
1256
|
url = result.rewriteUrl;
|
|
1122
1257
|
req.url = url;
|
|
1123
1258
|
}
|
|
1124
|
-
|
|
1259
|
+
const middlewareStatus = result.status ?? result.rewriteStatus;
|
|
1260
|
+
if (middlewareStatus !== void 0) req.__vinextMiddlewareStatus = middlewareStatus;
|
|
1125
1261
|
if (hasAppDir) {
|
|
1126
1262
|
const mwCtxEntries = [];
|
|
1127
1263
|
if (result.responseHeaders) {
|
|
1128
1264
|
for (const [key, value] of result.responseHeaders) if (key !== "x-middleware-next" && key !== "x-middleware-rewrite") mwCtxEntries.push([key, value]);
|
|
1129
1265
|
}
|
|
1130
|
-
req.headers[
|
|
1266
|
+
req.headers[VINEXT_MW_CTX_HEADER] = JSON.stringify({
|
|
1131
1267
|
h: mwCtxEntries,
|
|
1132
|
-
s:
|
|
1268
|
+
s: middlewareStatus ?? null,
|
|
1133
1269
|
r: result.rewriteUrl ?? null
|
|
1134
1270
|
});
|
|
1135
1271
|
}
|
|
@@ -1159,9 +1295,13 @@ function vinext(options = {}) {
|
|
|
1159
1295
|
return;
|
|
1160
1296
|
}
|
|
1161
1297
|
const routes = await pagesRouter(pagesDir, nextConfig?.pageExtensions, fileMatcher);
|
|
1162
|
-
|
|
1298
|
+
let match = matchRoute(resolvedUrl.split("?")[0], routes);
|
|
1299
|
+
if ((!match || match.route.isDynamic) && nextConfig?.rewrites.afterFiles.length) {
|
|
1163
1300
|
const afterRewrite = applyRewrites(resolvedUrl.split("?")[0], nextConfig.rewrites.afterFiles, reqCtx);
|
|
1164
|
-
if (afterRewrite)
|
|
1301
|
+
if (afterRewrite) {
|
|
1302
|
+
resolvedUrl = afterRewrite;
|
|
1303
|
+
match = matchRoute(resolvedUrl.split("?")[0], routes);
|
|
1304
|
+
}
|
|
1165
1305
|
}
|
|
1166
1306
|
if (isExternalUrl(resolvedUrl)) {
|
|
1167
1307
|
applyDeferredMwHeaders();
|
|
@@ -1170,8 +1310,8 @@ function vinext(options = {}) {
|
|
|
1170
1310
|
return;
|
|
1171
1311
|
}
|
|
1172
1312
|
const handler = createSSRHandler(server, getPagesRunner(), routes, pagesDir, nextConfig?.i18n, fileMatcher, nextConfig?.basePath ?? "", nextConfig?.trailingSlash ?? false);
|
|
1173
|
-
const mwStatus = req.
|
|
1174
|
-
if (
|
|
1313
|
+
const mwStatus = req.__vinextMiddlewareStatus;
|
|
1314
|
+
if (match) {
|
|
1175
1315
|
applyDeferredMwHeaders();
|
|
1176
1316
|
if (middlewareRequestHeaders) applyRequestHeadersToNodeRequest(middlewareRequestHeaders);
|
|
1177
1317
|
await handler(req, res, resolvedUrl, mwStatus);
|
|
@@ -1198,6 +1338,9 @@ function vinext(options = {}) {
|
|
|
1198
1338
|
} catch (e) {
|
|
1199
1339
|
next(e);
|
|
1200
1340
|
}
|
|
1341
|
+
};
|
|
1342
|
+
server.middlewares.use((req, res, next) => {
|
|
1343
|
+
handlePagesMiddleware(req, res, next);
|
|
1201
1344
|
});
|
|
1202
1345
|
};
|
|
1203
1346
|
}
|
|
@@ -1519,22 +1662,26 @@ function vinext(options = {}) {
|
|
|
1519
1662
|
if (!options.precompress && process.env.VINEXT_PRECOMPRESS !== "1") return;
|
|
1520
1663
|
const outDir = outputOptions.dir;
|
|
1521
1664
|
if (!outDir) return;
|
|
1522
|
-
const
|
|
1665
|
+
const assetsSubdir = resolveAssetsDir(nextConfig.assetPrefix);
|
|
1666
|
+
const assetsDir = path.join(outDir, assetsSubdir);
|
|
1523
1667
|
if (!fs.existsSync(assetsDir)) return;
|
|
1524
1668
|
const isTTY = process.stderr.isTTY;
|
|
1525
1669
|
let lastLineLen = 0;
|
|
1526
1670
|
pendingPrecompressError = null;
|
|
1527
1671
|
pendingPrecompress = (async () => {
|
|
1528
|
-
const result = await precompressAssets(outDir,
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1672
|
+
const result = await precompressAssets(outDir, {
|
|
1673
|
+
assetsDir: assetsSubdir,
|
|
1674
|
+
onProgress: (completed, total, file) => {
|
|
1675
|
+
if (!isTTY) return;
|
|
1676
|
+
const pct = total > 0 ? Math.floor(completed / total * 100) : 0;
|
|
1677
|
+
const bar = `[${"█".repeat(Math.floor(pct / 5))}${" ".repeat(20 - Math.floor(pct / 5))}]`;
|
|
1678
|
+
const maxFile = 30;
|
|
1679
|
+
const fileLabel = file.length > maxFile ? "…" + file.slice(-(maxFile - 1)) : file;
|
|
1680
|
+
const line = `Compressing assets... ${bar} ${String(completed).padStart(String(total).length)}/${total} ${fileLabel}`;
|
|
1681
|
+
const padded = line.padEnd(lastLineLen);
|
|
1682
|
+
lastLineLen = line.length;
|
|
1683
|
+
process.stderr.write(`\r${padded}`);
|
|
1684
|
+
}
|
|
1538
1685
|
});
|
|
1539
1686
|
if (isTTY) process.stderr.write(`\r${" ".repeat(lastLineLen)}\r`);
|
|
1540
1687
|
if (result.filesCompressed > 0) {
|
|
@@ -1624,10 +1771,11 @@ function vinext(options = {}) {
|
|
|
1624
1771
|
const workerEntry = path.join(workerOutDir, "index.js");
|
|
1625
1772
|
if (!fs.existsSync(workerEntry)) return;
|
|
1626
1773
|
if (!clientEntryFile) {
|
|
1627
|
-
const
|
|
1774
|
+
const assetsSubdir = resolveAssetsDir(nextConfig?.assetPrefix);
|
|
1775
|
+
const assetsDir = path.join(clientDir, assetsSubdir);
|
|
1628
1776
|
if (fs.existsSync(assetsDir)) {
|
|
1629
1777
|
const entry = fs.readdirSync(assetsDir).find((f) => (f.includes("vinext-client-entry") || f.includes("vinext-app-browser-entry")) && f.endsWith(".js"));
|
|
1630
|
-
if (entry) clientEntryFile = manifestFileWithBase(
|
|
1778
|
+
if (entry) clientEntryFile = manifestFileWithBase(`${assetsSubdir}/${entry}`, clientBase);
|
|
1631
1779
|
}
|
|
1632
1780
|
}
|
|
1633
1781
|
if (clientEntryFile || ssrManifestData || lazyChunksData) {
|
|
@@ -1704,7 +1852,10 @@ function vinext(options = {}) {
|
|
|
1704
1852
|
}
|
|
1705
1853
|
}
|
|
1706
1854
|
];
|
|
1707
|
-
if (rscPluginPromise)
|
|
1855
|
+
if (rscPluginPromise) {
|
|
1856
|
+
plugins.push(rscPluginPromise);
|
|
1857
|
+
plugins.push(createRscClientReferenceLoadersPlugin());
|
|
1858
|
+
}
|
|
1708
1859
|
return plugins;
|
|
1709
1860
|
}
|
|
1710
1861
|
/**
|