@qzsy/vinext 0.1.7
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/LICENSE +21 -0
- package/README.md +773 -0
- package/dist/build/assets-ignore.d.ts +32 -0
- package/dist/build/assets-ignore.js +48 -0
- package/dist/build/clean-output.d.ts +13 -0
- package/dist/build/clean-output.js +34 -0
- package/dist/build/client-build-config.d.ts +171 -0
- package/dist/build/client-build-config.js +270 -0
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +213 -0
- package/dist/build/google-fonts/build-url.d.ts +9 -0
- package/dist/build/google-fonts/build-url.js +28 -0
- package/dist/build/google-fonts/fallback-metrics-data.js +14029 -0
- package/dist/build/google-fonts/fallback-metrics.d.ts +12 -0
- package/dist/build/google-fonts/fallback-metrics.js +44 -0
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +16 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +28 -0
- package/dist/build/google-fonts/font-data.js +24983 -0
- package/dist/build/google-fonts/font-metadata.d.ts +16 -0
- package/dist/build/google-fonts/font-metadata.js +5 -0
- package/dist/build/google-fonts/get-axes.d.ts +6 -0
- package/dist/build/google-fonts/get-axes.js +37 -0
- package/dist/build/google-fonts/sort-variants.d.ts +4 -0
- package/dist/build/google-fonts/sort-variants.js +12 -0
- package/dist/build/google-fonts/validate.d.ts +27 -0
- package/dist/build/google-fonts/validate.js +54 -0
- package/dist/build/inline-css.d.ts +6 -0
- package/dist/build/inline-css.js +48 -0
- package/dist/build/layout-classification-types.d.ts +61 -0
- package/dist/build/layout-classification-types.js +1 -0
- package/dist/build/layout-classification.d.ts +59 -0
- package/dist/build/layout-classification.js +98 -0
- package/dist/build/next-client-runtime-manifests.d.ts +14 -0
- package/dist/build/next-client-runtime-manifests.js +39 -0
- package/dist/build/nitro-route-rules.d.ts +49 -0
- package/dist/build/nitro-route-rules.js +79 -0
- package/dist/build/precompress.d.ts +27 -0
- package/dist/build/precompress.js +110 -0
- package/dist/build/prerender.d.ts +209 -0
- package/dist/build/prerender.js +932 -0
- package/dist/build/report.d.ts +132 -0
- package/dist/build/report.js +504 -0
- package/dist/build/route-classification-injector.d.ts +34 -0
- package/dist/build/route-classification-injector.js +59 -0
- package/dist/build/route-classification-manifest.d.ts +52 -0
- package/dist/build/route-classification-manifest.js +143 -0
- package/dist/build/run-prerender.d.ts +61 -0
- package/dist/build/run-prerender.js +224 -0
- package/dist/build/server-manifest.d.ts +18 -0
- package/dist/build/server-manifest.js +22 -0
- package/dist/build/ssr-manifest.d.ts +18 -0
- package/dist/build/ssr-manifest.js +69 -0
- package/dist/build/standalone.d.ts +31 -0
- package/dist/build/standalone.js +203 -0
- package/dist/build/static-export.d.ts +55 -0
- package/dist/build/static-export.js +60 -0
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/cache.d.ts +2 -0
- package/dist/cache.js +2 -0
- package/dist/check.d.ts +87 -0
- package/dist/check.js +1037 -0
- package/dist/cli-args.d.ts +33 -0
- package/dist/cli-args.js +124 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +744 -0
- package/dist/client/app-nav-failure-handler.d.ts +8 -0
- package/dist/client/app-nav-failure-handler.js +44 -0
- package/dist/client/empty-module.d.ts +1 -0
- package/dist/client/empty-module.js +1 -0
- package/dist/client/instrumentation-client-inject.d.ts +33 -0
- package/dist/client/instrumentation-client-inject.js +55 -0
- package/dist/client/instrumentation-client-state.d.ts +9 -0
- package/dist/client/instrumentation-client-state.js +17 -0
- package/dist/client/instrumentation-client.d.ts +7 -0
- package/dist/client/instrumentation-client.js +6 -0
- package/dist/client/navigation-runtime.d.ts +70 -0
- package/dist/client/navigation-runtime.js +169 -0
- package/dist/client/pages-router-link-navigation.d.ts +61 -0
- package/dist/client/pages-router-link-navigation.js +42 -0
- package/dist/client/validate-module-path.d.ts +17 -0
- package/dist/client/validate-module-path.js +24 -0
- package/dist/client/vinext-next-data.d.ts +44 -0
- package/dist/client/vinext-next-data.js +50 -0
- package/dist/client/window-next.d.ts +168 -0
- package/dist/client/window-next.js +57 -0
- package/dist/cloudflare/index.d.ts +3 -0
- package/dist/cloudflare/index.js +3 -0
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +102 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.d.ts +126 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.js +435 -0
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +82 -0
- package/dist/cloudflare/tpr.js +558 -0
- package/dist/config/config-matchers.d.ts +257 -0
- package/dist/config/config-matchers.js +1046 -0
- package/dist/config/dotenv.d.ts +56 -0
- package/dist/config/dotenv.js +88 -0
- package/dist/config/next-config.d.ts +540 -0
- package/dist/config/next-config.js +1050 -0
- package/dist/config/tsconfig-paths.d.ts +21 -0
- package/dist/config/tsconfig-paths.js +157 -0
- package/dist/deploy.d.ts +190 -0
- package/dist/deploy.js +1033 -0
- package/dist/entries/app-browser-entry.d.ts +29 -0
- package/dist/entries/app-browser-entry.js +83 -0
- package/dist/entries/app-rsc-entry.d.ts +81 -0
- package/dist/entries/app-rsc-entry.js +943 -0
- package/dist/entries/app-rsc-manifest.d.ts +53 -0
- package/dist/entries/app-rsc-manifest.js +294 -0
- package/dist/entries/app-ssr-entry.d.ts +15 -0
- package/dist/entries/app-ssr-entry.js +24 -0
- package/dist/entries/pages-client-entry.d.ts +11 -0
- package/dist/entries/pages-client-entry.js +204 -0
- package/dist/entries/pages-entry-helpers.d.ts +2 -0
- package/dist/entries/pages-entry-helpers.js +2 -0
- package/dist/entries/pages-server-entry.d.ts +11 -0
- package/dist/entries/pages-server-entry.js +398 -0
- package/dist/entries/runtime-entry-module.d.ts +25 -0
- package/dist/entries/runtime-entry-module.js +46 -0
- package/dist/index.d.ts +115 -0
- package/dist/index.js +2661 -0
- package/dist/init.d.ts +69 -0
- package/dist/init.js +253 -0
- package/dist/plugins/ast-utils.d.ts +20 -0
- package/dist/plugins/ast-utils.js +78 -0
- package/dist/plugins/async-hooks-stub.d.ts +18 -0
- package/dist/plugins/async-hooks-stub.js +40 -0
- package/dist/plugins/client-reference-dedup.d.ts +35 -0
- package/dist/plugins/client-reference-dedup.js +189 -0
- package/dist/plugins/css-data-url.d.ts +6 -0
- package/dist/plugins/css-data-url.js +83 -0
- package/dist/plugins/dynamic-preload-metadata.d.ts +13 -0
- package/dist/plugins/dynamic-preload-metadata.js +413 -0
- package/dist/plugins/extensionless-dynamic-import.d.ts +6 -0
- package/dist/plugins/extensionless-dynamic-import.js +155 -0
- package/dist/plugins/fonts.d.ts +95 -0
- package/dist/plugins/fonts.js +711 -0
- package/dist/plugins/import-meta-url.d.ts +16 -0
- package/dist/plugins/import-meta-url.js +353 -0
- package/dist/plugins/instrumentation-client.d.ts +6 -0
- package/dist/plugins/instrumentation-client.js +27 -0
- package/dist/plugins/middleware-export-validation.d.ts +5 -0
- package/dist/plugins/middleware-export-validation.js +36 -0
- package/dist/plugins/middleware-server-only.d.ts +53 -0
- package/dist/plugins/middleware-server-only.js +90 -0
- package/dist/plugins/og-asset-ownership.d.ts +27 -0
- package/dist/plugins/og-asset-ownership.js +285 -0
- package/dist/plugins/og-assets.d.ts +50 -0
- package/dist/plugins/og-assets.js +229 -0
- package/dist/plugins/optimize-imports.d.ts +42 -0
- package/dist/plugins/optimize-imports.js +587 -0
- package/dist/plugins/postcss.d.ts +26 -0
- package/dist/plugins/postcss.js +96 -0
- package/dist/plugins/remove-console.d.ts +21 -0
- package/dist/plugins/remove-console.js +177 -0
- package/dist/plugins/require-context.d.ts +6 -0
- package/dist/plugins/require-context.js +185 -0
- package/dist/plugins/rsc-client-reference-loaders.d.ts +6 -0
- package/dist/plugins/rsc-client-reference-loaders.js +46 -0
- package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
- package/dist/plugins/rsc-client-shim-excludes.js +35 -0
- package/dist/plugins/sass.d.ts +62 -0
- package/dist/plugins/sass.js +268 -0
- package/dist/plugins/server-externals-manifest.d.ts +26 -0
- package/dist/plugins/server-externals-manifest.js +81 -0
- package/dist/plugins/strip-server-exports.d.ts +21 -0
- package/dist/plugins/strip-server-exports.js +519 -0
- package/dist/plugins/typeof-window.d.ts +14 -0
- package/dist/plugins/typeof-window.js +150 -0
- package/dist/plugins/wasm-module-import.d.ts +15 -0
- package/dist/plugins/wasm-module-import.js +50 -0
- package/dist/routing/app-route-graph.d.ts +336 -0
- package/dist/routing/app-route-graph.js +1518 -0
- package/dist/routing/app-router.d.ts +30 -0
- package/dist/routing/app-router.js +59 -0
- package/dist/routing/file-matcher.d.ts +60 -0
- package/dist/routing/file-matcher.js +147 -0
- package/dist/routing/pages-router.d.ts +48 -0
- package/dist/routing/pages-router.js +163 -0
- package/dist/routing/route-matching.d.ts +27 -0
- package/dist/routing/route-matching.js +42 -0
- package/dist/routing/route-pattern.d.ts +64 -0
- package/dist/routing/route-pattern.js +165 -0
- package/dist/routing/route-trie.d.ts +67 -0
- package/dist/routing/route-trie.js +143 -0
- package/dist/routing/route-validation.d.ts +10 -0
- package/dist/routing/route-validation.js +101 -0
- package/dist/routing/utils.d.ts +117 -0
- package/dist/routing/utils.js +242 -0
- package/dist/server/accept-encoding.d.ts +29 -0
- package/dist/server/accept-encoding.js +95 -0
- package/dist/server/api-handler.d.ts +17 -0
- package/dist/server/api-handler.js +276 -0
- package/dist/server/app-action-request.d.ts +4 -0
- package/dist/server/app-action-request.js +9 -0
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-bfcache-identity.d.ts +36 -0
- package/dist/server/app-bfcache-identity.js +156 -0
- package/dist/server/app-browser-action-result.d.ts +64 -0
- package/dist/server/app-browser-action-result.js +111 -0
- package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
- package/dist/server/app-browser-client-reuse-manifest.js +101 -0
- package/dist/server/app-browser-entry.d.ts +1 -0
- package/dist/server/app-browser-entry.js +1087 -0
- package/dist/server/app-browser-error.d.ts +13 -0
- package/dist/server/app-browser-error.js +52 -0
- package/dist/server/app-browser-history-controller.d.ts +104 -0
- package/dist/server/app-browser-history-controller.js +210 -0
- package/dist/server/app-browser-hydration.d.ts +32 -0
- package/dist/server/app-browser-hydration.js +29 -0
- package/dist/server/app-browser-interception-context.d.ts +24 -0
- package/dist/server/app-browser-interception-context.js +43 -0
- package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
- package/dist/server/app-browser-mpa-navigation.js +42 -0
- package/dist/server/app-browser-navigation-controller.d.ts +109 -0
- package/dist/server/app-browser-navigation-controller.js +465 -0
- package/dist/server/app-browser-popstate.d.ts +26 -0
- package/dist/server/app-browser-popstate.js +44 -0
- package/dist/server/app-browser-rsc-redirect.d.ts +38 -0
- package/dist/server/app-browser-rsc-redirect.js +64 -0
- package/dist/server/app-browser-server-action-client.d.ts +32 -0
- package/dist/server/app-browser-server-action-client.js +128 -0
- package/dist/server/app-browser-server-action-navigation.d.ts +6 -0
- package/dist/server/app-browser-server-action-navigation.js +9 -0
- package/dist/server/app-browser-state.d.ts +140 -0
- package/dist/server/app-browser-state.js +315 -0
- package/dist/server/app-browser-stream.d.ts +28 -0
- package/dist/server/app-browser-stream.js +122 -0
- package/dist/server/app-browser-visible-commit.d.ts +78 -0
- package/dist/server/app-browser-visible-commit.js +241 -0
- package/dist/server/app-client-reference-preloader.d.ts +14 -0
- package/dist/server/app-client-reference-preloader.js +44 -0
- package/dist/server/app-elements-wire.d.ts +192 -0
- package/dist/server/app-elements-wire.js +443 -0
- package/dist/server/app-elements.d.ts +9 -0
- package/dist/server/app-elements.js +18 -0
- package/dist/server/app-fallback-renderer.d.ts +89 -0
- package/dist/server/app-fallback-renderer.js +136 -0
- package/dist/server/app-history-state.d.ts +85 -0
- package/dist/server/app-history-state.js +223 -0
- package/dist/server/app-hook-warning-suppression.d.ts +6 -0
- package/dist/server/app-hook-warning-suppression.js +10 -0
- package/dist/server/app-inline-css-client.d.ts +6 -0
- package/dist/server/app-inline-css-client.js +35 -0
- package/dist/server/app-interception-context-header.d.ts +32 -0
- package/dist/server/app-interception-context-header.js +42 -0
- package/dist/server/app-layout-param-observation.d.ts +43 -0
- package/dist/server/app-layout-param-observation.js +168 -0
- package/dist/server/app-middleware.d.ts +46 -0
- package/dist/server/app-middleware.js +168 -0
- package/dist/server/app-mounted-slots-header.d.ts +35 -0
- package/dist/server/app-mounted-slots-header.js +58 -0
- package/dist/server/app-optimistic-routing.d.ts +53 -0
- package/dist/server/app-optimistic-routing.js +227 -0
- package/dist/server/app-page-boundary-render.d.ts +85 -0
- package/dist/server/app-page-boundary-render.js +305 -0
- package/dist/server/app-page-boundary.d.ts +102 -0
- package/dist/server/app-page-boundary.js +120 -0
- package/dist/server/app-page-cache-finalizer.d.ts +62 -0
- package/dist/server/app-page-cache-finalizer.js +122 -0
- package/dist/server/app-page-cache-render.d.ts +53 -0
- package/dist/server/app-page-cache-render.js +91 -0
- package/dist/server/app-page-cache.d.ts +83 -0
- package/dist/server/app-page-cache.js +272 -0
- package/dist/server/app-page-dispatch.d.ts +223 -0
- package/dist/server/app-page-dispatch.js +610 -0
- package/dist/server/app-page-element-builder.d.ts +96 -0
- package/dist/server/app-page-element-builder.js +205 -0
- package/dist/server/app-page-execution.d.ts +138 -0
- package/dist/server/app-page-execution.js +328 -0
- package/dist/server/app-page-head.d.ts +65 -0
- package/dist/server/app-page-head.js +228 -0
- package/dist/server/app-page-method.d.ts +15 -0
- package/dist/server/app-page-method.js +25 -0
- package/dist/server/app-page-params.d.ts +8 -0
- package/dist/server/app-page-params.js +39 -0
- package/dist/server/app-page-ppr-runtime.d.ts +7 -0
- package/dist/server/app-page-ppr-runtime.js +70 -0
- package/dist/server/app-page-probe.d.ts +134 -0
- package/dist/server/app-page-probe.js +276 -0
- package/dist/server/app-page-render-identity.d.ts +21 -0
- package/dist/server/app-page-render-identity.js +40 -0
- package/dist/server/app-page-render-observation.d.ts +36 -0
- package/dist/server/app-page-render-observation.js +82 -0
- package/dist/server/app-page-render.d.ts +111 -0
- package/dist/server/app-page-render.js +602 -0
- package/dist/server/app-page-request.d.ts +137 -0
- package/dist/server/app-page-request.js +216 -0
- package/dist/server/app-page-response.d.ts +68 -0
- package/dist/server/app-page-response.js +120 -0
- package/dist/server/app-page-route-wiring.d.ts +151 -0
- package/dist/server/app-page-route-wiring.js +452 -0
- package/dist/server/app-page-search-params-observation.d.ts +10 -0
- package/dist/server/app-page-search-params-observation.js +20 -0
- package/dist/server/app-page-segment-state.d.ts +9 -0
- package/dist/server/app-page-segment-state.js +80 -0
- package/dist/server/app-page-stream.d.ts +151 -0
- package/dist/server/app-page-stream.js +143 -0
- package/dist/server/app-pages-bridge.d.ts +63 -0
- package/dist/server/app-pages-bridge.js +63 -0
- package/dist/server/app-post-middleware-context.d.ts +15 -0
- package/dist/server/app-post-middleware-context.js +26 -0
- package/dist/server/app-ppr-fallback-shell-render.d.ts +18 -0
- package/dist/server/app-ppr-fallback-shell-render.js +26 -0
- package/dist/server/app-ppr-fallback-shell.d.ts +33 -0
- package/dist/server/app-ppr-fallback-shell.js +89 -0
- package/dist/server/app-prerender-endpoints.d.ts +18 -0
- package/dist/server/app-prerender-endpoints.js +94 -0
- package/dist/server/app-prerender-static-params.d.ts +30 -0
- package/dist/server/app-prerender-static-params.js +81 -0
- package/dist/server/app-render-dependency.d.ts +14 -0
- package/dist/server/app-render-dependency.js +41 -0
- package/dist/server/app-request-context.d.ts +20 -0
- package/dist/server/app-request-context.js +29 -0
- package/dist/server/app-route-handler-cache.d.ts +46 -0
- package/dist/server/app-route-handler-cache.js +78 -0
- package/dist/server/app-route-handler-dispatch.d.ts +49 -0
- package/dist/server/app-route-handler-dispatch.js +163 -0
- package/dist/server/app-route-handler-execution.d.ts +86 -0
- package/dist/server/app-route-handler-execution.js +128 -0
- package/dist/server/app-route-handler-policy.d.ts +55 -0
- package/dist/server/app-route-handler-policy.js +58 -0
- package/dist/server/app-route-handler-response.d.ts +28 -0
- package/dist/server/app-route-handler-response.js +145 -0
- package/dist/server/app-route-handler-runtime.d.ts +39 -0
- package/dist/server/app-route-handler-runtime.js +250 -0
- package/dist/server/app-route-module-loader.d.ts +91 -0
- package/dist/server/app-route-module-loader.js +83 -0
- package/dist/server/app-router-entry.d.ts +13 -0
- package/dist/server/app-router-entry.js +49 -0
- package/dist/server/app-rsc-cache-busting.d.ts +64 -0
- package/dist/server/app-rsc-cache-busting.js +206 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +8 -0
- package/dist/server/app-rsc-embedded-chunks.js +32 -0
- package/dist/server/app-rsc-error-handler.d.ts +20 -0
- package/dist/server/app-rsc-error-handler.js +28 -0
- package/dist/server/app-rsc-errors.d.ts +40 -0
- package/dist/server/app-rsc-errors.js +60 -0
- package/dist/server/app-rsc-handler.d.ts +201 -0
- package/dist/server/app-rsc-handler.js +538 -0
- package/dist/server/app-rsc-render-mode.d.ts +11 -0
- package/dist/server/app-rsc-render-mode.js +25 -0
- package/dist/server/app-rsc-request-normalization.d.ts +48 -0
- package/dist/server/app-rsc-request-normalization.js +75 -0
- package/dist/server/app-rsc-response-finalizer.d.ts +37 -0
- package/dist/server/app-rsc-response-finalizer.js +54 -0
- package/dist/server/app-rsc-route-matching.d.ts +93 -0
- package/dist/server/app-rsc-route-matching.js +134 -0
- package/dist/server/app-segment-config.d.ts +46 -0
- package/dist/server/app-segment-config.js +113 -0
- package/dist/server/app-server-action-execution.d.ts +219 -0
- package/dist/server/app-server-action-execution.js +767 -0
- package/dist/server/app-ssr-entry.d.ts +52 -0
- package/dist/server/app-ssr-entry.js +295 -0
- package/dist/server/app-ssr-error-meta.d.ts +13 -0
- package/dist/server/app-ssr-error-meta.js +48 -0
- package/dist/server/app-ssr-router-instance.d.ts +6 -0
- package/dist/server/app-ssr-router-instance.js +24 -0
- package/dist/server/app-ssr-stream.d.ts +60 -0
- package/dist/server/app-ssr-stream.js +408 -0
- package/dist/server/app-static-generation.d.ts +15 -0
- package/dist/server/app-static-generation.js +19 -0
- package/dist/server/app-visited-response-cache.d.ts +23 -0
- package/dist/server/app-visited-response-cache.js +19 -0
- package/dist/server/artifact-compatibility.d.ts +54 -0
- package/dist/server/artifact-compatibility.js +91 -0
- package/dist/server/before-interactive-head.d.ts +17 -0
- package/dist/server/before-interactive-head.js +35 -0
- package/dist/server/cache-control.d.ts +37 -0
- package/dist/server/cache-control.js +56 -0
- package/dist/server/cache-headers.d.ts +6 -0
- package/dist/server/cache-headers.js +17 -0
- package/dist/server/cache-proof.d.ts +364 -0
- package/dist/server/cache-proof.js +794 -0
- package/dist/server/client-reuse-manifest.d.ts +104 -0
- package/dist/server/client-reuse-manifest.js +209 -0
- package/dist/server/client-trace-metadata.d.ts +30 -0
- package/dist/server/client-trace-metadata.js +81 -0
- package/dist/server/cookie-utils.d.ts +12 -0
- package/dist/server/cookie-utils.js +18 -0
- package/dist/server/csp.d.ts +10 -0
- package/dist/server/csp.js +41 -0
- package/dist/server/default-global-error-module.d.ts +19 -0
- package/dist/server/default-global-error-module.js +18 -0
- package/dist/server/default-not-found-module.d.ts +19 -0
- package/dist/server/default-not-found-module.js +18 -0
- package/dist/server/defer-until-stream-consumed.d.ts +7 -0
- package/dist/server/defer-until-stream-consumed.js +34 -0
- package/dist/server/dev-error-overlay-store.d.ts +39 -0
- package/dist/server/dev-error-overlay-store.js +86 -0
- package/dist/server/dev-error-overlay.d.ts +51 -0
- package/dist/server/dev-error-overlay.js +1341 -0
- package/dist/server/dev-initial-server-error.d.ts +9 -0
- package/dist/server/dev-initial-server-error.js +26 -0
- package/dist/server/dev-lockfile.d.ts +109 -0
- package/dist/server/dev-lockfile.js +179 -0
- package/dist/server/dev-module-runner.d.ts +30 -0
- package/dist/server/dev-module-runner.js +91 -0
- package/dist/server/dev-origin-check.d.ts +62 -0
- package/dist/server/dev-origin-check.js +156 -0
- package/dist/server/dev-route-files.d.ts +6 -0
- package/dist/server/dev-route-files.js +71 -0
- package/dist/server/dev-server.d.ts +58 -0
- package/dist/server/dev-server.js +1114 -0
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
- package/dist/server/dev-stack-sourcemap.d.ts +43 -0
- package/dist/server/dev-stack-sourcemap.js +443 -0
- package/dist/server/document-initial-head.d.ts +6 -0
- package/dist/server/document-initial-head.js +33 -0
- package/dist/server/edge-api-runtime.d.ts +4 -0
- package/dist/server/edge-api-runtime.js +6 -0
- package/dist/server/file-based-metadata.d.ts +29 -0
- package/dist/server/file-based-metadata.js +401 -0
- package/dist/server/headers.d.ts +114 -0
- package/dist/server/headers.js +136 -0
- package/dist/server/html.d.ts +28 -0
- package/dist/server/html.js +41 -0
- package/dist/server/http-error-responses.d.ts +91 -0
- package/dist/server/http-error-responses.js +105 -0
- package/dist/server/hybrid-route-priority.d.ts +22 -0
- package/dist/server/hybrid-route-priority.js +33 -0
- package/dist/server/image-optimization.d.ts +130 -0
- package/dist/server/image-optimization.js +247 -0
- package/dist/server/implicit-tags.d.ts +6 -0
- package/dist/server/implicit-tags.js +44 -0
- package/dist/server/instrumentation-runtime.d.ts +49 -0
- package/dist/server/instrumentation-runtime.js +35 -0
- package/dist/server/instrumentation.d.ts +85 -0
- package/dist/server/instrumentation.js +130 -0
- package/dist/server/isr-cache.d.ts +127 -0
- package/dist/server/isr-cache.js +282 -0
- package/dist/server/isr-decision.d.ts +79 -0
- package/dist/server/isr-decision.js +70 -0
- package/dist/server/metadata-route-build-data.d.ts +24 -0
- package/dist/server/metadata-route-build-data.js +148 -0
- package/dist/server/metadata-route-response.d.ts +16 -0
- package/dist/server/metadata-route-response.js +205 -0
- package/dist/server/metadata-routes.d.ts +139 -0
- package/dist/server/metadata-routes.js +433 -0
- package/dist/server/middleware-matcher.d.ts +14 -0
- package/dist/server/middleware-matcher.js +111 -0
- package/dist/server/middleware-request-headers.d.ts +11 -0
- package/dist/server/middleware-request-headers.js +65 -0
- package/dist/server/middleware-response-headers.d.ts +12 -0
- package/dist/server/middleware-response-headers.js +42 -0
- package/dist/server/middleware-runtime.d.ts +67 -0
- package/dist/server/middleware-runtime.js +240 -0
- package/dist/server/middleware.d.ts +62 -0
- package/dist/server/middleware.js +114 -0
- package/dist/server/navigation-planner.d.ts +308 -0
- package/dist/server/navigation-planner.js +831 -0
- package/dist/server/navigation-trace.d.ts +68 -0
- package/dist/server/navigation-trace.js +71 -0
- package/dist/server/next-error-digest.d.ts +44 -0
- package/dist/server/next-error-digest.js +40 -0
- package/dist/server/normalize-path.d.ts +38 -0
- package/dist/server/normalize-path.js +70 -0
- package/dist/server/open-redirect.d.ts +12 -0
- package/dist/server/open-redirect.js +21 -0
- package/dist/server/operation-token.d.ts +40 -0
- package/dist/server/operation-token.js +85 -0
- package/dist/server/otel-tracer-extension.d.ts +45 -0
- package/dist/server/otel-tracer-extension.js +89 -0
- package/dist/server/pages-api-route.d.ts +83 -0
- package/dist/server/pages-api-route.js +75 -0
- package/dist/server/pages-asset-tags.d.ts +78 -0
- package/dist/server/pages-asset-tags.js +126 -0
- package/dist/server/pages-body-parser-config.d.ts +59 -0
- package/dist/server/pages-body-parser-config.js +77 -0
- package/dist/server/pages-data-route.d.ts +121 -0
- package/dist/server/pages-data-route.js +157 -0
- package/dist/server/pages-default-404.d.ts +30 -0
- package/dist/server/pages-default-404.js +38 -0
- package/dist/server/pages-dev-module-url.d.ts +4 -0
- package/dist/server/pages-dev-module-url.js +15 -0
- package/dist/server/pages-document-initial-props.d.ts +77 -0
- package/dist/server/pages-document-initial-props.js +109 -0
- package/dist/server/pages-get-initial-props.d.ts +67 -0
- package/dist/server/pages-get-initial-props.js +92 -0
- package/dist/server/pages-i18n.d.ts +106 -0
- package/dist/server/pages-i18n.js +183 -0
- package/dist/server/pages-media-type.d.ts +15 -0
- package/dist/server/pages-media-type.js +24 -0
- package/dist/server/pages-node-compat.d.ts +55 -0
- package/dist/server/pages-node-compat.js +235 -0
- package/dist/server/pages-page-data.d.ts +223 -0
- package/dist/server/pages-page-data.js +484 -0
- package/dist/server/pages-page-handler.d.ts +100 -0
- package/dist/server/pages-page-handler.js +403 -0
- package/dist/server/pages-page-method.d.ts +47 -0
- package/dist/server/pages-page-method.js +17 -0
- package/dist/server/pages-page-response.d.ts +138 -0
- package/dist/server/pages-page-response.js +285 -0
- package/dist/server/pages-readiness.d.ts +36 -0
- package/dist/server/pages-readiness.js +21 -0
- package/dist/server/pages-request-pipeline.d.ts +116 -0
- package/dist/server/pages-request-pipeline.js +311 -0
- package/dist/server/pages-revalidate.d.ts +15 -0
- package/dist/server/pages-revalidate.js +19 -0
- package/dist/server/pages-serializable-props.d.ts +24 -0
- package/dist/server/pages-serializable-props.js +67 -0
- package/dist/server/pregenerated-concrete-paths.d.ts +16 -0
- package/dist/server/pregenerated-concrete-paths.js +61 -0
- package/dist/server/prerender-manifest.d.ts +33 -0
- package/dist/server/prerender-manifest.js +54 -0
- package/dist/server/prerender-route-params.d.ts +23 -0
- package/dist/server/prerender-route-params.js +113 -0
- package/dist/server/prerender-work-unit-setup.d.ts +6 -0
- package/dist/server/prerender-work-unit-setup.js +28 -0
- package/dist/server/prod-server.d.ts +148 -0
- package/dist/server/prod-server.js +1136 -0
- package/dist/server/proxy-trust.d.ts +40 -0
- package/dist/server/proxy-trust.js +68 -0
- package/dist/server/request-log.d.ts +39 -0
- package/dist/server/request-log.js +56 -0
- package/dist/server/request-pipeline.d.ts +187 -0
- package/dist/server/request-pipeline.js +447 -0
- package/dist/server/rsc-stream-hints.d.ts +10 -0
- package/dist/server/rsc-stream-hints.js +41 -0
- package/dist/server/seed-cache.d.ts +29 -0
- package/dist/server/seed-cache.js +125 -0
- package/dist/server/server-action-not-found.d.ts +21 -0
- package/dist/server/server-action-not-found.js +62 -0
- package/dist/server/server-globals.d.ts +4 -0
- package/dist/server/server-globals.js +35 -0
- package/dist/server/skip-cache-proof.d.ts +61 -0
- package/dist/server/skip-cache-proof.js +168 -0
- package/dist/server/socket-error-backstop.d.ts +34 -0
- package/dist/server/socket-error-backstop.js +200 -0
- package/dist/server/static-file-cache.d.ts +56 -0
- package/dist/server/static-file-cache.js +231 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
- package/dist/server/static-layout-client-reuse-proof.js +33 -0
- package/dist/server/streaming-metadata.d.ts +4 -0
- package/dist/server/streaming-metadata.js +8 -0
- package/dist/server/worker-utils.d.ts +7 -0
- package/dist/server/worker-utils.js +99 -0
- package/dist/shims/amp.d.ts +19 -0
- package/dist/shims/amp.js +23 -0
- package/dist/shims/app-router-scroll-state.d.ts +15 -0
- package/dist/shims/app-router-scroll-state.js +61 -0
- package/dist/shims/app-router-scroll.d.ts +29 -0
- package/dist/shims/app-router-scroll.js +141 -0
- package/dist/shims/app.d.ts +42 -0
- package/dist/shims/app.js +48 -0
- package/dist/shims/before-interactive-context.d.ts +40 -0
- package/dist/shims/before-interactive-context.js +8 -0
- package/dist/shims/cache-for-request.d.ts +57 -0
- package/dist/shims/cache-for-request.js +72 -0
- package/dist/shims/cache-handler.d.ts +106 -0
- package/dist/shims/cache-handler.js +176 -0
- package/dist/shims/cache-request-state.d.ts +47 -0
- package/dist/shims/cache-request-state.js +126 -0
- package/dist/shims/cache-runtime.d.ts +83 -0
- package/dist/shims/cache-runtime.js +452 -0
- package/dist/shims/cache.d.ts +145 -0
- package/dist/shims/cache.js +401 -0
- package/dist/shims/cdn-cache.d.ts +125 -0
- package/dist/shims/cdn-cache.js +100 -0
- package/dist/shims/client-hook-error.d.ts +13 -0
- package/dist/shims/client-hook-error.js +17 -0
- package/dist/shims/client-locale.d.ts +14 -0
- package/dist/shims/client-locale.js +11 -0
- package/dist/shims/client-only.d.ts +1 -0
- package/dist/shims/client-only.js +1 -0
- package/dist/shims/compat-router.d.ts +16 -0
- package/dist/shims/compat-router.js +25 -0
- package/dist/shims/config.d.ts +28 -0
- package/dist/shims/config.js +21 -0
- package/dist/shims/constants.d.ts +130 -0
- package/dist/shims/constants.js +167 -0
- package/dist/shims/default-global-error.d.ts +31 -0
- package/dist/shims/default-global-error.js +179 -0
- package/dist/shims/default-not-found.d.ts +11 -0
- package/dist/shims/default-not-found.js +59 -0
- package/dist/shims/document.d.ts +92 -0
- package/dist/shims/document.js +76 -0
- package/dist/shims/dynamic-preload-chunks.d.ts +8 -0
- package/dist/shims/dynamic-preload-chunks.js +79 -0
- package/dist/shims/dynamic.d.ts +35 -0
- package/dist/shims/dynamic.js +204 -0
- package/dist/shims/error-boundary-navigation.d.ts +7 -0
- package/dist/shims/error-boundary-navigation.js +44 -0
- package/dist/shims/error-boundary.d.ts +155 -0
- package/dist/shims/error-boundary.js +342 -0
- package/dist/shims/error.d.ts +31 -0
- package/dist/shims/error.js +123 -0
- package/dist/shims/error.react-server.d.ts +9 -0
- package/dist/shims/error.react-server.js +6 -0
- package/dist/shims/fetch-cache.d.ts +136 -0
- package/dist/shims/fetch-cache.js +766 -0
- package/dist/shims/font-google-base.d.ts +83 -0
- package/dist/shims/font-google-base.js +290 -0
- package/dist/shims/font-google.d.ts +2 -0
- package/dist/shims/font-google.js +2 -0
- package/dist/shims/font-local.d.ts +50 -0
- package/dist/shims/font-local.js +195 -0
- package/dist/shims/font-utils.d.ts +56 -0
- package/dist/shims/font-utils.js +107 -0
- package/dist/shims/form.d.ts +19 -0
- package/dist/shims/form.js +236 -0
- package/dist/shims/hash-scroll.d.ts +10 -0
- package/dist/shims/hash-scroll.js +47 -0
- package/dist/shims/head-state.d.ts +16 -0
- package/dist/shims/head-state.js +43 -0
- package/dist/shims/head.d.ts +73 -0
- package/dist/shims/head.js +340 -0
- package/dist/shims/headers.d.ts +253 -0
- package/dist/shims/headers.js +754 -0
- package/dist/shims/i18n-context.d.ts +22 -0
- package/dist/shims/i18n-context.js +42 -0
- package/dist/shims/i18n-state.d.ts +14 -0
- package/dist/shims/i18n-state.js +38 -0
- package/dist/shims/image-config.d.ts +45 -0
- package/dist/shims/image-config.js +85 -0
- package/dist/shims/image.d.ts +55 -0
- package/dist/shims/image.js +582 -0
- package/dist/shims/internal/als-registry.d.ts +14 -0
- package/dist/shims/internal/als-registry.js +80 -0
- package/dist/shims/internal/api-utils.d.ts +14 -0
- package/dist/shims/internal/api-utils.js +1 -0
- package/dist/shims/internal/app-page-props-cache-key.d.ts +5 -0
- package/dist/shims/internal/app-page-props-cache-key.js +16 -0
- package/dist/shims/internal/app-route-detection.d.ts +39 -0
- package/dist/shims/internal/app-route-detection.js +62 -0
- package/dist/shims/internal/app-router-context.d.ts +31 -0
- package/dist/shims/internal/app-router-context.js +28 -0
- package/dist/shims/internal/cookie-serialize.d.ts +45 -0
- package/dist/shims/internal/cookie-serialize.js +49 -0
- package/dist/shims/internal/cookies.d.ts +2 -0
- package/dist/shims/internal/cookies.js +2 -0
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +31 -0
- package/dist/shims/internal/hybrid-client-route-owner.js +143 -0
- package/dist/shims/internal/interpolate-as.d.ts +25 -0
- package/dist/shims/internal/interpolate-as.js +196 -0
- package/dist/shims/internal/link-status-registry.d.ts +43 -0
- package/dist/shims/internal/link-status-registry.js +42 -0
- package/dist/shims/internal/make-hanging-promise.d.ts +15 -0
- package/dist/shims/internal/make-hanging-promise.js +44 -0
- package/dist/shims/internal/navigation-untracked.d.ts +35 -0
- package/dist/shims/internal/navigation-untracked.js +56 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +54 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js +121 -0
- package/dist/shims/internal/pages-data-target.d.ts +62 -0
- package/dist/shims/internal/pages-data-target.js +98 -0
- package/dist/shims/internal/pages-data-url.d.ts +41 -0
- package/dist/shims/internal/pages-data-url.js +71 -0
- package/dist/shims/internal/pages-router-accessor.d.ts +19 -0
- package/dist/shims/internal/pages-router-accessor.js +13 -0
- package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
- package/dist/shims/internal/route-pattern-for-warning.js +40 -0
- package/dist/shims/internal/router-context.d.ts +7 -0
- package/dist/shims/internal/router-context.js +13 -0
- package/dist/shims/internal/utils.d.ts +52 -0
- package/dist/shims/internal/utils.js +27 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +30 -0
- package/dist/shims/internal/work-unit-async-storage.js +17 -0
- package/dist/shims/layout-segment-context.d.ts +24 -0
- package/dist/shims/layout-segment-context.js +39 -0
- package/dist/shims/legacy-image.d.ts +41 -0
- package/dist/shims/legacy-image.js +49 -0
- package/dist/shims/link-prefetch.d.ts +41 -0
- package/dist/shims/link-prefetch.js +43 -0
- package/dist/shims/link.d.ts +102 -0
- package/dist/shims/link.js +687 -0
- package/dist/shims/metadata.d.ts +285 -0
- package/dist/shims/metadata.js +820 -0
- package/dist/shims/navigation-context-state.d.ts +40 -0
- package/dist/shims/navigation-context-state.js +116 -0
- package/dist/shims/navigation-errors.d.ts +55 -0
- package/dist/shims/navigation-errors.js +110 -0
- package/dist/shims/navigation-server.d.ts +3 -0
- package/dist/shims/navigation-server.js +3 -0
- package/dist/shims/navigation-state.d.ts +25 -0
- package/dist/shims/navigation-state.js +66 -0
- package/dist/shims/navigation.d.ts +286 -0
- package/dist/shims/navigation.js +1206 -0
- package/dist/shims/navigation.react-server.d.ts +14 -0
- package/dist/shims/navigation.react-server.js +32 -0
- package/dist/shims/offline.d.ts +4 -0
- package/dist/shims/offline.js +15 -0
- package/dist/shims/og.d.ts +17 -0
- package/dist/shims/og.js +48 -0
- package/dist/shims/pages-router-runtime.d.ts +12 -0
- package/dist/shims/pages-router-runtime.js +24 -0
- package/dist/shims/ppr-fallback-shell.d.ts +33 -0
- package/dist/shims/ppr-fallback-shell.js +170 -0
- package/dist/shims/readonly-url-search-params.d.ts +13 -0
- package/dist/shims/readonly-url-search-params.js +26 -0
- package/dist/shims/request-context.d.ts +58 -0
- package/dist/shims/request-context.js +45 -0
- package/dist/shims/request-state-types.d.ts +12 -0
- package/dist/shims/request-state-types.js +1 -0
- package/dist/shims/root-params.d.ts +12 -0
- package/dist/shims/root-params.js +30 -0
- package/dist/shims/router-state.d.ts +32 -0
- package/dist/shims/router-state.js +39 -0
- package/dist/shims/router.d.ts +192 -0
- package/dist/shims/router.js +1786 -0
- package/dist/shims/script-nonce-context.d.ts +11 -0
- package/dist/shims/script-nonce-context.js +23 -0
- package/dist/shims/script.d.ts +43 -0
- package/dist/shims/script.js +370 -0
- package/dist/shims/server-only.d.ts +1 -0
- package/dist/shims/server-only.js +1 -0
- package/dist/shims/server.d.ts +323 -0
- package/dist/shims/server.js +729 -0
- package/dist/shims/slot.d.ts +45 -0
- package/dist/shims/slot.js +230 -0
- package/dist/shims/thenable-params.d.ts +11 -0
- package/dist/shims/thenable-params.js +176 -0
- package/dist/shims/unified-request-context.d.ts +68 -0
- package/dist/shims/unified-request-context.js +86 -0
- package/dist/shims/unrecognized-action-error.d.ts +34 -0
- package/dist/shims/unrecognized-action-error.js +39 -0
- package/dist/shims/url-safety.d.ts +34 -0
- package/dist/shims/url-safety.js +70 -0
- package/dist/shims/url-utils.d.ts +51 -0
- package/dist/shims/url-utils.js +156 -0
- package/dist/shims/use-merged-ref.d.ts +6 -0
- package/dist/shims/use-merged-ref.js +38 -0
- package/dist/shims/web-vitals.d.ts +8 -0
- package/dist/shims/web-vitals.js +22 -0
- package/dist/typegen.d.ts +9 -0
- package/dist/typegen.js +228 -0
- package/dist/utils/asset-prefix.d.ts +96 -0
- package/dist/utils/asset-prefix.js +122 -0
- package/dist/utils/base-path.d.ts +31 -0
- package/dist/utils/base-path.js +45 -0
- package/dist/utils/built-asset-url.d.ts +4 -0
- package/dist/utils/built-asset-url.js +11 -0
- package/dist/utils/cache-control-metadata.d.ts +4 -0
- package/dist/utils/cache-control-metadata.js +12 -0
- package/dist/utils/client-build-manifest.d.ts +21 -0
- package/dist/utils/client-build-manifest.js +87 -0
- package/dist/utils/client-entry-manifest.d.ts +11 -0
- package/dist/utils/client-entry-manifest.js +29 -0
- package/dist/utils/client-runtime-metadata.d.ts +45 -0
- package/dist/utils/client-runtime-metadata.js +63 -0
- package/dist/utils/commonjs-loader.d.ts +16 -0
- package/dist/utils/commonjs-loader.js +100 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -0
- package/dist/utils/deployment-id.d.ts +8 -0
- package/dist/utils/deployment-id.js +22 -0
- package/dist/utils/dev-error-recovery-event.d.ts +4 -0
- package/dist/utils/dev-error-recovery-event.js +4 -0
- package/dist/utils/domain-locale.d.ts +26 -0
- package/dist/utils/domain-locale.js +50 -0
- package/dist/utils/encode-cache-tag.d.ts +30 -0
- package/dist/utils/encode-cache-tag.js +36 -0
- package/dist/utils/error-cause.d.ts +4 -0
- package/dist/utils/error-cause.js +95 -0
- package/dist/utils/has-trailing-comma.d.ts +24 -0
- package/dist/utils/has-trailing-comma.js +62 -0
- package/dist/utils/hash.d.ts +24 -0
- package/dist/utils/hash.js +55 -0
- package/dist/utils/html-limited-bots.d.ts +21 -0
- package/dist/utils/html-limited-bots.js +35 -0
- package/dist/utils/lazy-chunks.d.ts +59 -0
- package/dist/utils/lazy-chunks.js +112 -0
- package/dist/utils/manifest-paths.d.ts +30 -0
- package/dist/utils/manifest-paths.js +66 -0
- package/dist/utils/mdx-scan.d.ts +9 -0
- package/dist/utils/mdx-scan.js +34 -0
- package/dist/utils/navigation-signal.d.ts +4 -0
- package/dist/utils/navigation-signal.js +12 -0
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/parse-cookie.d.ts +13 -0
- package/dist/utils/parse-cookie.js +52 -0
- package/dist/utils/path.d.ts +22 -0
- package/dist/utils/path.js +30 -0
- package/dist/utils/prerender-output-paths.d.ts +14 -0
- package/dist/utils/prerender-output-paths.js +22 -0
- package/dist/utils/project.d.ts +76 -0
- package/dist/utils/project.js +213 -0
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +4 -0
- package/dist/utils/public-routes.js +48 -0
- package/dist/utils/query.d.ts +49 -0
- package/dist/utils/query.js +122 -0
- package/dist/utils/record.d.ts +4 -0
- package/dist/utils/record.js +6 -0
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +17 -0
- package/dist/utils/safe-json-file.js +23 -0
- package/dist/utils/sorted-array.d.ts +8 -0
- package/dist/utils/sorted-array.js +20 -0
- package/dist/utils/text-stream.d.ts +28 -0
- package/dist/utils/text-stream.js +64 -0
- package/dist/utils/vinext-root.d.ts +23 -0
- package/dist/utils/vinext-root.js +29 -0
- package/dist/utils/virtual-module.d.ts +5 -0
- package/dist/utils/virtual-module.js +0 -0
- package/dist/utils/vite-version.d.ts +21 -0
- package/dist/utils/vite-version.js +42 -0
- package/package.json +145 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
//#region src/build/assets-ignore.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Build metadata that must never be served by the Cloudflare ASSETS binding.
|
|
4
|
+
*
|
|
5
|
+
* On Cloudflare Workers the ASSETS binding serves any uploaded file whose path
|
|
6
|
+
* matches the request BEFORE the Worker runs, so anything written into the
|
|
7
|
+
* client output directory (`dist/client`) is publicly fetchable unless excluded.
|
|
8
|
+
* Vite writes its build/SSR manifests under `dist/client/.vite/` (enabled for
|
|
9
|
+
* Cloudflare builds so the worker entry can compute lazy chunks), which would
|
|
10
|
+
* otherwise expose the full source-file → chunk mapping — including the paths of
|
|
11
|
+
* routes that are never linked from the UI.
|
|
12
|
+
*
|
|
13
|
+
* The Node production server already blocks `/.vite/` explicitly
|
|
14
|
+
* (see `server/static-file-cache.ts`); `.assetsignore` is the equivalent guard
|
|
15
|
+
* for the Cloudflare deployment target. wrangler matches `.assetsignore`
|
|
16
|
+
* patterns with `.gitignore` semantics (via the `ignore` package), so the bare
|
|
17
|
+
* `.vite` entry excludes the directory and everything beneath it.
|
|
18
|
+
*/
|
|
19
|
+
declare const DEFAULT_VINEXT_ASSET_IGNORE_PATTERNS: readonly string[];
|
|
20
|
+
/**
|
|
21
|
+
* Ensure a `.assetsignore` in `clientDir` contains every pattern in `patterns`.
|
|
22
|
+
*
|
|
23
|
+
* Any pre-existing (user-authored) content is preserved verbatim and only the
|
|
24
|
+
* missing patterns are appended, so the result is idempotent across rebuilds
|
|
25
|
+
* and never clobbers a `.assetsignore` the developer wrote themselves.
|
|
26
|
+
*
|
|
27
|
+
* @returns `true` when the file was created or modified, `false` when it already
|
|
28
|
+
* covered every requested pattern.
|
|
29
|
+
*/
|
|
30
|
+
declare function ensureAssetsIgnore(clientDir: string, patterns?: readonly string[]): boolean;
|
|
31
|
+
//#endregion
|
|
32
|
+
export { DEFAULT_VINEXT_ASSET_IGNORE_PATTERNS, ensureAssetsIgnore };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
//#region src/build/assets-ignore.ts
|
|
4
|
+
/**
|
|
5
|
+
* Build metadata that must never be served by the Cloudflare ASSETS binding.
|
|
6
|
+
*
|
|
7
|
+
* On Cloudflare Workers the ASSETS binding serves any uploaded file whose path
|
|
8
|
+
* matches the request BEFORE the Worker runs, so anything written into the
|
|
9
|
+
* client output directory (`dist/client`) is publicly fetchable unless excluded.
|
|
10
|
+
* Vite writes its build/SSR manifests under `dist/client/.vite/` (enabled for
|
|
11
|
+
* Cloudflare builds so the worker entry can compute lazy chunks), which would
|
|
12
|
+
* otherwise expose the full source-file → chunk mapping — including the paths of
|
|
13
|
+
* routes that are never linked from the UI.
|
|
14
|
+
*
|
|
15
|
+
* The Node production server already blocks `/.vite/` explicitly
|
|
16
|
+
* (see `server/static-file-cache.ts`); `.assetsignore` is the equivalent guard
|
|
17
|
+
* for the Cloudflare deployment target. wrangler matches `.assetsignore`
|
|
18
|
+
* patterns with `.gitignore` semantics (via the `ignore` package), so the bare
|
|
19
|
+
* `.vite` entry excludes the directory and everything beneath it.
|
|
20
|
+
*/
|
|
21
|
+
const DEFAULT_VINEXT_ASSET_IGNORE_PATTERNS = [".vite"];
|
|
22
|
+
/** wrangler reads asset-exclusion patterns from this file in the assets dir. */
|
|
23
|
+
const ASSETS_IGNORE_FILENAME = ".assetsignore";
|
|
24
|
+
const GENERATED_HEADER = "# Keep build metadata out of the deployed asset bundle (generated by vinext)";
|
|
25
|
+
/**
|
|
26
|
+
* Ensure a `.assetsignore` in `clientDir` contains every pattern in `patterns`.
|
|
27
|
+
*
|
|
28
|
+
* Any pre-existing (user-authored) content is preserved verbatim and only the
|
|
29
|
+
* missing patterns are appended, so the result is idempotent across rebuilds
|
|
30
|
+
* and never clobbers a `.assetsignore` the developer wrote themselves.
|
|
31
|
+
*
|
|
32
|
+
* @returns `true` when the file was created or modified, `false` when it already
|
|
33
|
+
* covered every requested pattern.
|
|
34
|
+
*/
|
|
35
|
+
function ensureAssetsIgnore(clientDir, patterns = DEFAULT_VINEXT_ASSET_IGNORE_PATTERNS) {
|
|
36
|
+
const assetsIgnorePath = path.join(clientDir, ASSETS_IGNORE_FILENAME);
|
|
37
|
+
const existing = fs.existsSync(assetsIgnorePath) ? fs.readFileSync(assetsIgnorePath, "utf-8") : null;
|
|
38
|
+
const present = new Set((existing ?? "").split(/\r?\n/).map((line) => line.trim()).filter(Boolean));
|
|
39
|
+
const missing = patterns.filter((pattern) => !present.has(pattern));
|
|
40
|
+
if (missing.length === 0) return false;
|
|
41
|
+
const lines = existing && existing.trim().length > 0 ? [existing.replace(/\s*$/, "")] : [GENERATED_HEADER];
|
|
42
|
+
lines.push(...missing, "");
|
|
43
|
+
fs.mkdirSync(clientDir, { recursive: true });
|
|
44
|
+
fs.writeFileSync(assetsIgnorePath, lines.join("\n"));
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { DEFAULT_VINEXT_ASSET_IGNORE_PATTERNS, ensureAssetsIgnore };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/build/clean-output.d.ts
|
|
2
|
+
type CleanBuildOutputOptions = {
|
|
3
|
+
root: string;
|
|
4
|
+
outDir?: string;
|
|
5
|
+
emptyOutDir?: boolean;
|
|
6
|
+
};
|
|
7
|
+
type CleanBuildOutputResult = {
|
|
8
|
+
cleaned: boolean;
|
|
9
|
+
outDir: string;
|
|
10
|
+
};
|
|
11
|
+
declare function cleanBuildOutput(options: CleanBuildOutputOptions): CleanBuildOutputResult;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { cleanBuildOutput };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
//#region src/build/clean-output.ts
|
|
4
|
+
function resolveOutDir(root, outDir) {
|
|
5
|
+
const resolvedRoot = path.resolve(root);
|
|
6
|
+
if (!outDir) return path.join(resolvedRoot, "dist");
|
|
7
|
+
return path.isAbsolute(outDir) ? outDir : path.resolve(resolvedRoot, outDir);
|
|
8
|
+
}
|
|
9
|
+
function isPathInsideOrEqual(parent, child) {
|
|
10
|
+
const relative = path.relative(parent, child);
|
|
11
|
+
return relative === "" || !relative.startsWith("..") && !path.isAbsolute(relative);
|
|
12
|
+
}
|
|
13
|
+
function shouldCleanBuildOutput(options) {
|
|
14
|
+
if (options.emptyOutDir === false) return false;
|
|
15
|
+
if (options.emptyOutDir === true) return true;
|
|
16
|
+
return isPathInsideOrEqual(path.resolve(options.root), resolveOutDir(options.root, options.outDir));
|
|
17
|
+
}
|
|
18
|
+
function cleanBuildOutput(options) {
|
|
19
|
+
const outDir = resolveOutDir(options.root, options.outDir);
|
|
20
|
+
if (!shouldCleanBuildOutput(options)) return {
|
|
21
|
+
cleaned: false,
|
|
22
|
+
outDir
|
|
23
|
+
};
|
|
24
|
+
fs.rmSync(outDir, {
|
|
25
|
+
recursive: true,
|
|
26
|
+
force: true
|
|
27
|
+
});
|
|
28
|
+
return {
|
|
29
|
+
cleaned: true,
|
|
30
|
+
outDir
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
//#endregion
|
|
34
|
+
export { cleanBuildOutput };
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { UserConfig } from "vite";
|
|
2
|
+
|
|
3
|
+
//#region src/build/client-build-config.d.ts
|
|
4
|
+
type ClientAssetFileNameInfo = {
|
|
5
|
+
readonly name?: string;
|
|
6
|
+
readonly names?: readonly string[];
|
|
7
|
+
readonly originalFileName?: string;
|
|
8
|
+
readonly originalFileNames?: readonly string[];
|
|
9
|
+
};
|
|
10
|
+
type RscFrameworkModuleInfo = {
|
|
11
|
+
importers: string[];
|
|
12
|
+
isEntry: boolean;
|
|
13
|
+
};
|
|
14
|
+
type RscFrameworkManualChunksMeta = {
|
|
15
|
+
getModuleInfo(id: string): RscFrameworkModuleInfo | null;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Routes client assets into Next-compatible subtrees: `.css` sources go to
|
|
19
|
+
* `<assetsDir>/css/`, everything else to `<assetsDir>/media/`. Returned as a
|
|
20
|
+
* function so it can inspect every source-name candidate Rolldown records for
|
|
21
|
+
* an asset (a single output asset can carry several `originalFileNames`).
|
|
22
|
+
*/
|
|
23
|
+
declare function createClientAssetFileNames(assetsDir: string): (assetInfo: ClientAssetFileNameInfo) => string;
|
|
24
|
+
/**
|
|
25
|
+
* Create a manualChunks function for client builds.
|
|
26
|
+
*
|
|
27
|
+
* Splits the client bundle into:
|
|
28
|
+
* - "framework" — React, ReactDOM, and scheduler (loaded on every page)
|
|
29
|
+
* - "vinext" — shared vinext runtime shims
|
|
30
|
+
*
|
|
31
|
+
* Route-owned client shims and all other vendor code are left to the bundler's
|
|
32
|
+
* graph-based chunking so they stay behind their client-reference boundaries.
|
|
33
|
+
*
|
|
34
|
+
* Why not split every npm package into its own chunk?
|
|
35
|
+
* - Per-package splitting (`vendor-X`) creates 50-200+ chunks for a
|
|
36
|
+
* typical app, far exceeding the ~25-request sweet spot for HTTP/2.
|
|
37
|
+
* - gzip/brotli compress small files poorly — each file restarts with
|
|
38
|
+
* an empty dictionary, losing ~5-15% total compressed size vs fewer
|
|
39
|
+
* larger chunks (Khan Academy measured +2.5% wire size with 10x
|
|
40
|
+
* more files containing less raw code).
|
|
41
|
+
* - ES module evaluation has per-module overhead that compounds on
|
|
42
|
+
* mobile devices.
|
|
43
|
+
* - No major Vite-based framework (Remix, SvelteKit, Astro, TanStack)
|
|
44
|
+
* uses per-package splitting. Next.js only isolates packages >160KB.
|
|
45
|
+
* - Rollup's graph-based splitting already handles the common case
|
|
46
|
+
* well: shared dependencies between routes get their own chunks,
|
|
47
|
+
* and route-specific code stays in route chunks.
|
|
48
|
+
*/
|
|
49
|
+
declare function createClientManualChunks(shimsDir: string, preserveRouteBoundaries?: boolean): (id: string) => string | undefined;
|
|
50
|
+
/**
|
|
51
|
+
* Rollup output config with manualChunks for client code-splitting.
|
|
52
|
+
* Used by both CLI builds and multi-environment builds.
|
|
53
|
+
*
|
|
54
|
+
* experimentalMinChunkSize merges tiny shared chunks (< 10KB) back into
|
|
55
|
+
* their importers. This reduces HTTP request count and improves gzip
|
|
56
|
+
* compression efficiency — small files restart the compression dictionary,
|
|
57
|
+
* adding ~5-15% wire overhead vs fewer larger chunks.
|
|
58
|
+
*/
|
|
59
|
+
declare function createClientFileNameConfig(assetsDir: string): {
|
|
60
|
+
entryFileNames: string;
|
|
61
|
+
chunkFileNames: string;
|
|
62
|
+
};
|
|
63
|
+
declare function createClientOutputConfig(clientManualChunks: (id: string) => string | undefined, assetsDir: string): {
|
|
64
|
+
assetFileNames: (assetInfo: ClientAssetFileNameInfo) => string;
|
|
65
|
+
manualChunks: (id: string) => string | undefined;
|
|
66
|
+
experimentalMinChunkSize: number;
|
|
67
|
+
entryFileNames: string;
|
|
68
|
+
chunkFileNames: string;
|
|
69
|
+
};
|
|
70
|
+
declare function createClientCodeSplittingConfig(clientManualChunks: (id: string) => string | undefined): {
|
|
71
|
+
minSize: number;
|
|
72
|
+
groups: {
|
|
73
|
+
name(moduleId: string): string | null;
|
|
74
|
+
}[];
|
|
75
|
+
};
|
|
76
|
+
/**
|
|
77
|
+
* Regex matching any {@link FRAMEWORK_PACKAGES} package inside `node_modules`.
|
|
78
|
+
* Derived from the package list so the regex and {@link isRscFrameworkModule}
|
|
79
|
+
* predicate can't drift.
|
|
80
|
+
*/
|
|
81
|
+
declare const RSC_FRAMEWORK_CHUNK_TEST: RegExp;
|
|
82
|
+
declare function isRscFrameworkModule(id: string): boolean;
|
|
83
|
+
/**
|
|
84
|
+
* Output config that isolates React (and the RSC flight runtime) into a
|
|
85
|
+
* dedicated "framework" chunk in the RSC server build. Returns the bundler-
|
|
86
|
+
* appropriate shape: rolldown's `codeSplitting` for Vite 8+, Rollup's
|
|
87
|
+
* `manualChunks` for Vite 7. See {@link RSC_FRAMEWORK_CHUNK_TEST} for the
|
|
88
|
+
* motivation (issue #1549). Framework modules that are only reachable through
|
|
89
|
+
* dynamic imports must stay out of the eager framework chunk (issue #2073).
|
|
90
|
+
*/
|
|
91
|
+
declare function createRscFrameworkChunkOutputConfig(viteMajorVersion: number): {
|
|
92
|
+
codeSplitting: {
|
|
93
|
+
groups: {
|
|
94
|
+
name: string;
|
|
95
|
+
test: RegExp;
|
|
96
|
+
entriesAware: boolean;
|
|
97
|
+
}[];
|
|
98
|
+
};
|
|
99
|
+
manualChunks?: undefined;
|
|
100
|
+
} | {
|
|
101
|
+
manualChunks(id: string, meta: RscFrameworkManualChunksMeta): string | undefined;
|
|
102
|
+
codeSplitting?: undefined;
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Rollup treeshake configuration for production client builds.
|
|
106
|
+
*
|
|
107
|
+
* Uses the 'recommended' preset as a safe base, then overrides
|
|
108
|
+
* moduleSideEffects to strip unused re-exports from npm packages.
|
|
109
|
+
*
|
|
110
|
+
* The 'no-external' value for moduleSideEffects means:
|
|
111
|
+
* - Local project modules: preserve side effects (CSS imports, polyfills)
|
|
112
|
+
* - node_modules packages: treat as side-effect-free unless exports are used
|
|
113
|
+
*
|
|
114
|
+
* This is the single highest-impact optimization for large barrel-exporting
|
|
115
|
+
* libraries like mermaid, @mui/material, lucide-react, etc. These libraries
|
|
116
|
+
* re-export hundreds of sub-modules through barrel files. Without this,
|
|
117
|
+
* Rollup preserves every sub-module even when only a few exports are consumed.
|
|
118
|
+
*
|
|
119
|
+
* Why 'no-external' instead of false (global side-effect-free)?
|
|
120
|
+
* - User code may rely on import-time side effects (e.g., `import './global.css'`)
|
|
121
|
+
* - 'no-external' is safe for app code while still enabling aggressive DCE for deps
|
|
122
|
+
*
|
|
123
|
+
* Why not the 'smallest' preset?
|
|
124
|
+
* - 'smallest' also sets propertyReadSideEffects: false and
|
|
125
|
+
* tryCatchDeoptimization: false, which can break specific libraries
|
|
126
|
+
* that rely on property access side effects or try/catch for feature detection
|
|
127
|
+
* - 'recommended' + 'no-external' gives most of the benefit with less risk
|
|
128
|
+
*
|
|
129
|
+
* @deprecated Use getClientTreeshakeConfigForVite(viteMajorVersion) instead
|
|
130
|
+
* for Vite version compatibility. Kept for backward compatibility.
|
|
131
|
+
*/
|
|
132
|
+
declare const clientTreeshakeConfig: {
|
|
133
|
+
preset: "recommended";
|
|
134
|
+
moduleSideEffects: "no-external";
|
|
135
|
+
};
|
|
136
|
+
/**
|
|
137
|
+
* Returns treeshake configuration appropriate for the Vite version.
|
|
138
|
+
*
|
|
139
|
+
* Rollup (Vite 7) supports presets like "recommended" which set multiple
|
|
140
|
+
* treeshake options at once. Rolldown (Vite 8+) doesn't support presets,
|
|
141
|
+
* so we only return moduleSideEffects for Vite 8+.
|
|
142
|
+
*
|
|
143
|
+
* The Rollup "recommended" preset sets:
|
|
144
|
+
* - annotations: true (Rolldown default is also true)
|
|
145
|
+
* - manualPureFunctions: [] (Rolldown default is also [])
|
|
146
|
+
* - propertyReadSideEffects: true (Rolldown equivalent is 'always', the default)
|
|
147
|
+
* - unknownGlobalSideEffects: false (Rolldown default is true — this is a known acceptable
|
|
148
|
+
* divergence. Slightly less aggressive DCE on unknown globals, acceptable for client bundles)
|
|
149
|
+
* - correctVarValueBeforeDeclaration and tryCatchDeoptimization (Rolldown handles these differently)
|
|
150
|
+
*
|
|
151
|
+
* The key optimization is moduleSideEffects: "no-external", which is supported
|
|
152
|
+
* by both bundlers and provides the DCE benefits for barrel-exporting libraries.
|
|
153
|
+
* It treats node_modules as side-effect-free (enabling aggressive DCE) while
|
|
154
|
+
* preserving side effects in local code.
|
|
155
|
+
*/
|
|
156
|
+
declare function getClientTreeshakeConfigForVite(viteMajorVersion: number): {
|
|
157
|
+
moduleSideEffects: "no-external";
|
|
158
|
+
preset?: undefined;
|
|
159
|
+
} | {
|
|
160
|
+
preset: "recommended";
|
|
161
|
+
moduleSideEffects: "no-external";
|
|
162
|
+
};
|
|
163
|
+
type VinextBuildConfig = NonNullable<UserConfig["build"]>;
|
|
164
|
+
type VinextBuildBundlerOptions = NonNullable<VinextBuildConfig["rolldownOptions"]>;
|
|
165
|
+
type VinextBuildConfigWithLegacy = VinextBuildConfig & {
|
|
166
|
+
rollupOptions?: VinextBuildBundlerOptions;
|
|
167
|
+
};
|
|
168
|
+
declare function getBuildBundlerOptions(build: UserConfig["build"] | undefined): VinextBuildBundlerOptions | undefined;
|
|
169
|
+
declare function withBuildBundlerOptions(viteMajorVersion: number, bundlerOptions: VinextBuildBundlerOptions): Partial<VinextBuildConfigWithLegacy>;
|
|
170
|
+
//#endregion
|
|
171
|
+
export { RSC_FRAMEWORK_CHUNK_TEST, clientTreeshakeConfig, createClientAssetFileNames, createClientCodeSplittingConfig, createClientFileNameConfig, createClientManualChunks, createClientOutputConfig, createRscFrameworkChunkOutputConfig, getBuildBundlerOptions, getClientTreeshakeConfigForVite, isRscFrameworkModule, withBuildBundlerOptions };
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
//#region src/build/client-build-config.ts
|
|
2
|
+
const ROUTE_OWNED_CLIENT_SHIMS = new Set([
|
|
3
|
+
"compat-router",
|
|
4
|
+
"dynamic",
|
|
5
|
+
"dynamic-preload-chunks",
|
|
6
|
+
"form",
|
|
7
|
+
"image",
|
|
8
|
+
"layout-segment-context",
|
|
9
|
+
"legacy-image",
|
|
10
|
+
"link",
|
|
11
|
+
"offline",
|
|
12
|
+
"router",
|
|
13
|
+
"script",
|
|
14
|
+
"web-vitals"
|
|
15
|
+
]);
|
|
16
|
+
const NEXT_CLIENT_CSS_ASSET_FILE_NAMES = "css/[name].[hash:8][extname]";
|
|
17
|
+
const NEXT_CLIENT_STATIC_MEDIA_FILE_NAMES = "media/[name].[hash:8][extname]";
|
|
18
|
+
function joinAssetFileNamePattern(assetsDir, pattern) {
|
|
19
|
+
let end = assetsDir.length;
|
|
20
|
+
while (end > 0 && assetsDir[end - 1] === "/") end -= 1;
|
|
21
|
+
const normalized = assetsDir.slice(0, end);
|
|
22
|
+
return normalized ? `${normalized}/${pattern}` : pattern;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Routes client assets into Next-compatible subtrees: `.css` sources go to
|
|
26
|
+
* `<assetsDir>/css/`, everything else to `<assetsDir>/media/`. Returned as a
|
|
27
|
+
* function so it can inspect every source-name candidate Rolldown records for
|
|
28
|
+
* an asset (a single output asset can carry several `originalFileNames`).
|
|
29
|
+
*/
|
|
30
|
+
function createClientAssetFileNames(assetsDir) {
|
|
31
|
+
const cssAssetFileNames = joinAssetFileNamePattern(assetsDir, NEXT_CLIENT_CSS_ASSET_FILE_NAMES);
|
|
32
|
+
const mediaAssetFileNames = joinAssetFileNamePattern(assetsDir, NEXT_CLIENT_STATIC_MEDIA_FILE_NAMES);
|
|
33
|
+
return function getClientAssetFileNames(assetInfo) {
|
|
34
|
+
return [
|
|
35
|
+
...assetInfo.names ?? [],
|
|
36
|
+
assetInfo.name,
|
|
37
|
+
...assetInfo.originalFileNames ?? [],
|
|
38
|
+
assetInfo.originalFileName
|
|
39
|
+
].some((name) => name?.toLowerCase().endsWith(".css")) ? cssAssetFileNames : mediaAssetFileNames;
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Extract the npm package name from a module ID (file path).
|
|
44
|
+
* Returns null if not in node_modules.
|
|
45
|
+
*
|
|
46
|
+
* Handles scoped packages (@org/pkg) and pnpm-style paths
|
|
47
|
+
* (node_modules/.pnpm/pkg@ver/node_modules/pkg).
|
|
48
|
+
*/
|
|
49
|
+
function getPackageName(id) {
|
|
50
|
+
const normalizedId = id.replaceAll("\\", "/");
|
|
51
|
+
const nmIdx = normalizedId.lastIndexOf("node_modules/");
|
|
52
|
+
if (nmIdx === -1) return null;
|
|
53
|
+
const rest = normalizedId.slice(nmIdx + 13);
|
|
54
|
+
if (rest.startsWith("@")) {
|
|
55
|
+
const parts = rest.split("/");
|
|
56
|
+
return parts.length >= 2 ? parts[0] + "/" + parts[1] : null;
|
|
57
|
+
}
|
|
58
|
+
return rest.split("/")[0] || null;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Create a manualChunks function for client builds.
|
|
62
|
+
*
|
|
63
|
+
* Splits the client bundle into:
|
|
64
|
+
* - "framework" — React, ReactDOM, and scheduler (loaded on every page)
|
|
65
|
+
* - "vinext" — shared vinext runtime shims
|
|
66
|
+
*
|
|
67
|
+
* Route-owned client shims and all other vendor code are left to the bundler's
|
|
68
|
+
* graph-based chunking so they stay behind their client-reference boundaries.
|
|
69
|
+
*
|
|
70
|
+
* Why not split every npm package into its own chunk?
|
|
71
|
+
* - Per-package splitting (`vendor-X`) creates 50-200+ chunks for a
|
|
72
|
+
* typical app, far exceeding the ~25-request sweet spot for HTTP/2.
|
|
73
|
+
* - gzip/brotli compress small files poorly — each file restarts with
|
|
74
|
+
* an empty dictionary, losing ~5-15% total compressed size vs fewer
|
|
75
|
+
* larger chunks (Khan Academy measured +2.5% wire size with 10x
|
|
76
|
+
* more files containing less raw code).
|
|
77
|
+
* - ES module evaluation has per-module overhead that compounds on
|
|
78
|
+
* mobile devices.
|
|
79
|
+
* - No major Vite-based framework (Remix, SvelteKit, Astro, TanStack)
|
|
80
|
+
* uses per-package splitting. Next.js only isolates packages >160KB.
|
|
81
|
+
* - Rollup's graph-based splitting already handles the common case
|
|
82
|
+
* well: shared dependencies between routes get their own chunks,
|
|
83
|
+
* and route-specific code stays in route chunks.
|
|
84
|
+
*/
|
|
85
|
+
function createClientManualChunks(shimsDir, preserveRouteBoundaries = false) {
|
|
86
|
+
return function clientManualChunks(id) {
|
|
87
|
+
if (id.includes("node_modules")) {
|
|
88
|
+
const pkg = getPackageName(id);
|
|
89
|
+
if (!pkg) return void 0;
|
|
90
|
+
if (pkg === "react" || pkg === "react-dom" || pkg === "scheduler") return "framework";
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (id.startsWith(shimsDir)) {
|
|
94
|
+
if (preserveRouteBoundaries) {
|
|
95
|
+
const relativeId = id.slice(shimsDir.length).split("?", 1)[0] ?? "";
|
|
96
|
+
const extensionIndex = relativeId.lastIndexOf(".");
|
|
97
|
+
const shimName = extensionIndex === -1 ? relativeId : relativeId.slice(0, extensionIndex);
|
|
98
|
+
if (ROUTE_OWNED_CLIENT_SHIMS.has(shimName)) return void 0;
|
|
99
|
+
}
|
|
100
|
+
return "vinext";
|
|
101
|
+
}
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Rollup output config with manualChunks for client code-splitting.
|
|
106
|
+
* Used by both CLI builds and multi-environment builds.
|
|
107
|
+
*
|
|
108
|
+
* experimentalMinChunkSize merges tiny shared chunks (< 10KB) back into
|
|
109
|
+
* their importers. This reduces HTTP request count and improves gzip
|
|
110
|
+
* compression efficiency — small files restart the compression dictionary,
|
|
111
|
+
* adding ~5-15% wire overhead vs fewer larger chunks.
|
|
112
|
+
*/
|
|
113
|
+
function createClientFileNameConfig(assetsDir) {
|
|
114
|
+
const chunksDir = `${assetsDir}/chunks`;
|
|
115
|
+
return {
|
|
116
|
+
entryFileNames: `${chunksDir}/[name]-[hash].js`,
|
|
117
|
+
chunkFileNames: `${chunksDir}/[name]-[hash].js`
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
function createClientOutputConfig(clientManualChunks, assetsDir) {
|
|
121
|
+
return {
|
|
122
|
+
...createClientFileNameConfig(assetsDir),
|
|
123
|
+
assetFileNames: createClientAssetFileNames(assetsDir),
|
|
124
|
+
manualChunks: clientManualChunks,
|
|
125
|
+
experimentalMinChunkSize: 1e4
|
|
126
|
+
};
|
|
127
|
+
}
|
|
128
|
+
function createClientCodeSplittingConfig(clientManualChunks) {
|
|
129
|
+
return {
|
|
130
|
+
minSize: 1e4,
|
|
131
|
+
groups: [{ name(moduleId) {
|
|
132
|
+
return clientManualChunks(moduleId) ?? null;
|
|
133
|
+
} }]
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Matches React framework packages (and the RSC flight runtime) inside
|
|
138
|
+
* `node_modules`. Used to split them into a dedicated "framework" chunk in the
|
|
139
|
+
* RSC server build.
|
|
140
|
+
*
|
|
141
|
+
* Why the RSC build needs this: without an explicit framework chunk, the
|
|
142
|
+
* bundler colocates React into whichever chunk first reaches it — typically the
|
|
143
|
+
* RSC entry chunk, which also carries the root layout's CSS. Modules that only
|
|
144
|
+
* import React for runtime helpers (notably `app/global-not-found.tsx`, which
|
|
145
|
+
* replaces the root layout for route-miss 404s) then import that entry chunk
|
|
146
|
+
* and inherit the root layout's CSS in their `serverResources` metadata. The
|
|
147
|
+
* 404 document ends up linking the layout's stylesheet last, so the layout's
|
|
148
|
+
* rules win the cascade over global-not-found's — the bug tracked in
|
|
149
|
+
* https://github.com/cloudflare/vinext/issues/1549.
|
|
150
|
+
*
|
|
151
|
+
* Splitting React into its own (CSS-free) chunk means global-not-found imports
|
|
152
|
+
* the framework chunk instead of the layout-bearing entry chunk, so it no
|
|
153
|
+
* longer inherits the root layout's CSS. The match list mirrors the client
|
|
154
|
+
* build's `framework` chunk, plus `react-server-dom-webpack` for the RSC flight
|
|
155
|
+
* runtime that the server environment bundles.
|
|
156
|
+
*
|
|
157
|
+
* Uses `[\\/]` rather than `/` for the path separator so it matches on Windows
|
|
158
|
+
* too, per the rolldown `codeSplitting` docs.
|
|
159
|
+
*/
|
|
160
|
+
const FRAMEWORK_PACKAGES = [
|
|
161
|
+
"react",
|
|
162
|
+
"react-dom",
|
|
163
|
+
"scheduler",
|
|
164
|
+
"react-server-dom-webpack"
|
|
165
|
+
];
|
|
166
|
+
/**
|
|
167
|
+
* Regex matching any {@link FRAMEWORK_PACKAGES} package inside `node_modules`.
|
|
168
|
+
* Derived from the package list so the regex and {@link isRscFrameworkModule}
|
|
169
|
+
* predicate can't drift.
|
|
170
|
+
*/
|
|
171
|
+
const RSC_FRAMEWORK_CHUNK_TEST = new RegExp(`[\\\\/]node_modules[\\\\/](${FRAMEWORK_PACKAGES.join("|")})[\\\\/]`);
|
|
172
|
+
function isRscFrameworkModule(id) {
|
|
173
|
+
if (!id.includes("node_modules")) return false;
|
|
174
|
+
const pkg = getPackageName(id);
|
|
175
|
+
return pkg !== null && FRAMEWORK_PACKAGES.includes(pkg);
|
|
176
|
+
}
|
|
177
|
+
function isStaticallyReachableFromEntry(id, meta, visited = /* @__PURE__ */ new Set()) {
|
|
178
|
+
if (visited.has(id)) return false;
|
|
179
|
+
visited.add(id);
|
|
180
|
+
const moduleInfo = meta.getModuleInfo(id);
|
|
181
|
+
if (!moduleInfo) return false;
|
|
182
|
+
if (moduleInfo.isEntry) return true;
|
|
183
|
+
return moduleInfo.importers.some((importer) => isStaticallyReachableFromEntry(importer, meta, visited));
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Output config that isolates React (and the RSC flight runtime) into a
|
|
187
|
+
* dedicated "framework" chunk in the RSC server build. Returns the bundler-
|
|
188
|
+
* appropriate shape: rolldown's `codeSplitting` for Vite 8+, Rollup's
|
|
189
|
+
* `manualChunks` for Vite 7. See {@link RSC_FRAMEWORK_CHUNK_TEST} for the
|
|
190
|
+
* motivation (issue #1549). Framework modules that are only reachable through
|
|
191
|
+
* dynamic imports must stay out of the eager framework chunk (issue #2073).
|
|
192
|
+
*/
|
|
193
|
+
function createRscFrameworkChunkOutputConfig(viteMajorVersion) {
|
|
194
|
+
if (viteMajorVersion >= 8) return { codeSplitting: { groups: [{
|
|
195
|
+
name: "framework",
|
|
196
|
+
test: RSC_FRAMEWORK_CHUNK_TEST,
|
|
197
|
+
entriesAware: true
|
|
198
|
+
}] } };
|
|
199
|
+
return { manualChunks(id, meta) {
|
|
200
|
+
return isRscFrameworkModule(id) && isStaticallyReachableFromEntry(id, meta) ? "framework" : void 0;
|
|
201
|
+
} };
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Rollup treeshake configuration for production client builds.
|
|
205
|
+
*
|
|
206
|
+
* Uses the 'recommended' preset as a safe base, then overrides
|
|
207
|
+
* moduleSideEffects to strip unused re-exports from npm packages.
|
|
208
|
+
*
|
|
209
|
+
* The 'no-external' value for moduleSideEffects means:
|
|
210
|
+
* - Local project modules: preserve side effects (CSS imports, polyfills)
|
|
211
|
+
* - node_modules packages: treat as side-effect-free unless exports are used
|
|
212
|
+
*
|
|
213
|
+
* This is the single highest-impact optimization for large barrel-exporting
|
|
214
|
+
* libraries like mermaid, @mui/material, lucide-react, etc. These libraries
|
|
215
|
+
* re-export hundreds of sub-modules through barrel files. Without this,
|
|
216
|
+
* Rollup preserves every sub-module even when only a few exports are consumed.
|
|
217
|
+
*
|
|
218
|
+
* Why 'no-external' instead of false (global side-effect-free)?
|
|
219
|
+
* - User code may rely on import-time side effects (e.g., `import './global.css'`)
|
|
220
|
+
* - 'no-external' is safe for app code while still enabling aggressive DCE for deps
|
|
221
|
+
*
|
|
222
|
+
* Why not the 'smallest' preset?
|
|
223
|
+
* - 'smallest' also sets propertyReadSideEffects: false and
|
|
224
|
+
* tryCatchDeoptimization: false, which can break specific libraries
|
|
225
|
+
* that rely on property access side effects or try/catch for feature detection
|
|
226
|
+
* - 'recommended' + 'no-external' gives most of the benefit with less risk
|
|
227
|
+
*
|
|
228
|
+
* @deprecated Use getClientTreeshakeConfigForVite(viteMajorVersion) instead
|
|
229
|
+
* for Vite version compatibility. Kept for backward compatibility.
|
|
230
|
+
*/
|
|
231
|
+
const clientTreeshakeConfig = {
|
|
232
|
+
preset: "recommended",
|
|
233
|
+
moduleSideEffects: "no-external"
|
|
234
|
+
};
|
|
235
|
+
/**
|
|
236
|
+
* Returns treeshake configuration appropriate for the Vite version.
|
|
237
|
+
*
|
|
238
|
+
* Rollup (Vite 7) supports presets like "recommended" which set multiple
|
|
239
|
+
* treeshake options at once. Rolldown (Vite 8+) doesn't support presets,
|
|
240
|
+
* so we only return moduleSideEffects for Vite 8+.
|
|
241
|
+
*
|
|
242
|
+
* The Rollup "recommended" preset sets:
|
|
243
|
+
* - annotations: true (Rolldown default is also true)
|
|
244
|
+
* - manualPureFunctions: [] (Rolldown default is also [])
|
|
245
|
+
* - propertyReadSideEffects: true (Rolldown equivalent is 'always', the default)
|
|
246
|
+
* - unknownGlobalSideEffects: false (Rolldown default is true — this is a known acceptable
|
|
247
|
+
* divergence. Slightly less aggressive DCE on unknown globals, acceptable for client bundles)
|
|
248
|
+
* - correctVarValueBeforeDeclaration and tryCatchDeoptimization (Rolldown handles these differently)
|
|
249
|
+
*
|
|
250
|
+
* The key optimization is moduleSideEffects: "no-external", which is supported
|
|
251
|
+
* by both bundlers and provides the DCE benefits for barrel-exporting libraries.
|
|
252
|
+
* It treats node_modules as side-effect-free (enabling aggressive DCE) while
|
|
253
|
+
* preserving side effects in local code.
|
|
254
|
+
*/
|
|
255
|
+
function getClientTreeshakeConfigForVite(viteMajorVersion) {
|
|
256
|
+
if (viteMajorVersion >= 8) return { moduleSideEffects: "no-external" };
|
|
257
|
+
return {
|
|
258
|
+
preset: "recommended",
|
|
259
|
+
moduleSideEffects: "no-external"
|
|
260
|
+
};
|
|
261
|
+
}
|
|
262
|
+
function getBuildBundlerOptions(build) {
|
|
263
|
+
const buildConfig = build;
|
|
264
|
+
return buildConfig?.rolldownOptions ?? buildConfig?.rollupOptions;
|
|
265
|
+
}
|
|
266
|
+
function withBuildBundlerOptions(viteMajorVersion, bundlerOptions) {
|
|
267
|
+
return viteMajorVersion >= 8 ? { rolldownOptions: bundlerOptions } : { rollupOptions: bundlerOptions };
|
|
268
|
+
}
|
|
269
|
+
//#endregion
|
|
270
|
+
export { RSC_FRAMEWORK_CHUNK_TEST, clientTreeshakeConfig, createClientAssetFileNames, createClientCodeSplittingConfig, createClientFileNameConfig, createClientManualChunks, createClientOutputConfig, createRscFrameworkChunkOutputConfig, getBuildBundlerOptions, getClientTreeshakeConfigForVite, isRscFrameworkModule, withBuildBundlerOptions };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Rolldown } from "vite";
|
|
2
|
+
|
|
3
|
+
//#region src/build/css-url-assets.d.ts
|
|
4
|
+
type BundleAsset = Rolldown.OutputAsset;
|
|
5
|
+
type CssUrlAssetBundle = Rolldown.OutputBundle;
|
|
6
|
+
type EmitRestoredCssUrlAsset = (asset: {
|
|
7
|
+
fileName: string;
|
|
8
|
+
source: BundleAsset["source"];
|
|
9
|
+
}) => void;
|
|
10
|
+
/**
|
|
11
|
+
* Append the private provenance marker to each relative asset `url()` in a CSS
|
|
12
|
+
* source. Idempotent and side-effect free (only adds a query param), so it is
|
|
13
|
+
* safe to run on every build-environment stylesheet, vendored CSS included.
|
|
14
|
+
*/
|
|
15
|
+
declare function markCssUrlAssetReferences(code: string, id: string): string | null;
|
|
16
|
+
/**
|
|
17
|
+
* Mutates emitted CSS assets in place so byte-identical `url()` dependencies
|
|
18
|
+
* keep their distinct Next-compatible filenames. Sibling files are produced via
|
|
19
|
+
* `emitRestoredAsset` (which must call `this.emitFile({ type: "asset", fileName,
|
|
20
|
+
* source })` — the explicit `fileName` opts out of Rolldown's content dedupe).
|
|
21
|
+
*
|
|
22
|
+
* Expects CSS to have been marked by `markCssUrlAssetReferences()` first. The
|
|
23
|
+
* marker is stripped from all final output here. CSS that Vite inlined into a JS
|
|
24
|
+
* chunk (`cssCodeSplit: false` / `?inline`) already has final URLs, so chunk
|
|
25
|
+
* code only has the leaked marker stripped — no sibling files are emitted.
|
|
26
|
+
*/
|
|
27
|
+
declare function restoreDedupedCssAssetReferences(bundle: CssUrlAssetBundle, emitRestoredAsset: EmitRestoredCssUrlAsset): void;
|
|
28
|
+
//#endregion
|
|
29
|
+
export { markCssUrlAssetReferences, restoreDedupedCssAssetReferences };
|