@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,16 @@
|
|
|
1
|
+
//#region src/build/google-fonts/font-metadata.d.ts
|
|
2
|
+
type VariableAxisDescriptor = {
|
|
3
|
+
tag: string;
|
|
4
|
+
min: number;
|
|
5
|
+
max: number;
|
|
6
|
+
defaultValue: number;
|
|
7
|
+
};
|
|
8
|
+
type FontFamilyMetadata = {
|
|
9
|
+
/** Available weight values, plus the literal "variable" if a variable face exists. */weights: string[]; /** Available styles, e.g. ["normal"], ["italic"], or both. */
|
|
10
|
+
styles: string[]; /** Variable axes for this family. Absent when the family has no variable face. */
|
|
11
|
+
axes?: VariableAxisDescriptor[]; /** Preloadable subsets (e.g. "latin", "latin-ext", "vietnamese"). */
|
|
12
|
+
subsets: string[];
|
|
13
|
+
};
|
|
14
|
+
declare const googleFontsMetadata: Record<string, FontFamilyMetadata>;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { googleFontsMetadata };
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { googleFontsMetadata } from "./font-metadata.js";
|
|
2
|
+
//#region src/build/google-fonts/get-axes.ts
|
|
3
|
+
const formatAvailableValues = (values) => values.map((val) => `\`${val}\``).join(", ");
|
|
4
|
+
function getFontAxes(fontFamily, weights, styles, selectedVariableAxes) {
|
|
5
|
+
const hasItalic = styles.includes("italic");
|
|
6
|
+
const hasNormal = styles.includes("normal");
|
|
7
|
+
const ital = hasItalic ? [...hasNormal ? ["0"] : [], "1"] : void 0;
|
|
8
|
+
if (weights[0] === "variable") {
|
|
9
|
+
const allAxes = googleFontsMetadata[fontFamily].axes;
|
|
10
|
+
if (!allAxes) throw new Error("invariant variable font without axes");
|
|
11
|
+
if (selectedVariableAxes) {
|
|
12
|
+
const definableAxes = allAxes.map(({ tag }) => tag).filter((tag) => tag !== "wght");
|
|
13
|
+
if (definableAxes.length === 0) throw new Error(`Font \`${fontFamily}\` has no definable \`axes\``);
|
|
14
|
+
if (!Array.isArray(selectedVariableAxes)) throw new Error(`Invalid axes value for font \`${fontFamily}\`, expected an array of axes.\nAvailable axes: ${formatAvailableValues(definableAxes)}`);
|
|
15
|
+
for (const key of selectedVariableAxes) if (!definableAxes.includes(key)) throw new Error(`Invalid axes value \`${key}\` for font \`${fontFamily}\`.\nAvailable axes: ${formatAvailableValues(definableAxes)}`);
|
|
16
|
+
}
|
|
17
|
+
let weightAxis;
|
|
18
|
+
let variableAxes;
|
|
19
|
+
for (const { tag, min, max } of allAxes) if (tag === "wght") weightAxis = `${min}..${max}`;
|
|
20
|
+
else if (selectedVariableAxes?.includes(tag)) {
|
|
21
|
+
if (!variableAxes) variableAxes = [];
|
|
22
|
+
variableAxes.push([tag, `${min}..${max}`]);
|
|
23
|
+
}
|
|
24
|
+
return {
|
|
25
|
+
wght: weightAxis ? [weightAxis] : void 0,
|
|
26
|
+
ital,
|
|
27
|
+
variableAxes
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
wght: weights,
|
|
32
|
+
ital,
|
|
33
|
+
variableAxes: void 0
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
//#endregion
|
|
37
|
+
export { getFontAxes };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/build/google-fonts/sort-variants.ts
|
|
2
|
+
function sortFontsVariantValues(valA, valB) {
|
|
3
|
+
if (valA.includes(",") && valB.includes(",")) {
|
|
4
|
+
const [aPrefix, aSuffix] = valA.split(",", 2);
|
|
5
|
+
const [bPrefix, bSuffix] = valB.split(",", 2);
|
|
6
|
+
if (aPrefix === bPrefix) return parseInt(aSuffix) - parseInt(bSuffix);
|
|
7
|
+
return parseInt(aPrefix) - parseInt(bPrefix);
|
|
8
|
+
}
|
|
9
|
+
return parseInt(valA) - parseInt(valB);
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { sortFontsVariantValues };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/build/google-fonts/validate.d.ts
|
|
2
|
+
type GoogleFontOptions = {
|
|
3
|
+
weight?: string | string[];
|
|
4
|
+
style?: string | string[];
|
|
5
|
+
preload?: boolean;
|
|
6
|
+
display?: string;
|
|
7
|
+
axes?: string[];
|
|
8
|
+
fallback?: string[];
|
|
9
|
+
adjustFontFallback?: boolean;
|
|
10
|
+
variable?: string;
|
|
11
|
+
subsets?: string[];
|
|
12
|
+
};
|
|
13
|
+
type ValidatedGoogleFontOptions = {
|
|
14
|
+
fontFamily: string;
|
|
15
|
+
weights: string[];
|
|
16
|
+
styles: string[];
|
|
17
|
+
display: string;
|
|
18
|
+
preload: boolean;
|
|
19
|
+
selectedVariableAxes?: string[];
|
|
20
|
+
fallback?: string[];
|
|
21
|
+
adjustFontFallback: boolean;
|
|
22
|
+
variable?: string;
|
|
23
|
+
subsets: string[];
|
|
24
|
+
};
|
|
25
|
+
declare function validateGoogleFontOptions(fontFamily: string, options: GoogleFontOptions): ValidatedGoogleFontOptions;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { validateGoogleFontOptions };
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { googleFontsMetadata } from "./font-metadata.js";
|
|
2
|
+
//#region src/build/google-fonts/validate.ts
|
|
3
|
+
const ALLOWED_DISPLAY_VALUES = [
|
|
4
|
+
"auto",
|
|
5
|
+
"block",
|
|
6
|
+
"swap",
|
|
7
|
+
"fallback",
|
|
8
|
+
"optional"
|
|
9
|
+
];
|
|
10
|
+
const formatAvailableValues = (values) => values.map((val) => `\`${val}\``).join(", ");
|
|
11
|
+
const dedupe = (values) => Array.from(new Set(values));
|
|
12
|
+
function validateGoogleFontOptions(fontFamily, options) {
|
|
13
|
+
const { weight, style, display = "swap", axes, fallback, adjustFontFallback = true, variable, subsets = [] } = options;
|
|
14
|
+
let preload = options.preload ?? true;
|
|
15
|
+
const fontFamilyData = googleFontsMetadata[fontFamily];
|
|
16
|
+
if (!fontFamilyData) throw new Error(`Unknown font \`${fontFamily}\``);
|
|
17
|
+
if (axes !== void 0 && !Array.isArray(axes)) throw new Error(`Invalid axes value for font \`${fontFamily}\`, expected an array of axis names.`);
|
|
18
|
+
const availableSubsets = fontFamilyData.subsets;
|
|
19
|
+
if (availableSubsets.length === 0) preload = false;
|
|
20
|
+
else if (preload) {
|
|
21
|
+
if (subsets.length === 0) throw new Error(`Preload is enabled but no subsets were specified for font \`${fontFamily}\`. Please specify subsets or disable preloading if your intended subset can't be preloaded.\nAvailable subsets: ${formatAvailableValues(availableSubsets)}`);
|
|
22
|
+
for (const subset of subsets) if (!availableSubsets.includes(subset)) throw new Error(`Unknown subset \`${subset}\` for font \`${fontFamily}\`.\nAvailable subsets: ${formatAvailableValues(availableSubsets)}`);
|
|
23
|
+
}
|
|
24
|
+
const fontWeights = fontFamilyData.weights;
|
|
25
|
+
const fontStyles = fontFamilyData.styles;
|
|
26
|
+
const weights = !weight ? [] : dedupe(Array.isArray(weight) ? weight : [weight]);
|
|
27
|
+
const styles = !style ? [] : dedupe(Array.isArray(style) ? style : [style]);
|
|
28
|
+
if (weights.length === 0) if (fontWeights.includes("variable")) weights.push("variable");
|
|
29
|
+
else throw new Error(`Missing weight for font \`${fontFamily}\`.\nAvailable weights: ${formatAvailableValues(fontWeights)}`);
|
|
30
|
+
if (weights.length > 1 && weights.includes("variable")) throw new Error(`Unexpected \`variable\` in weight array for font \`${fontFamily}\`. You only need \`variable\`, it includes all available weights.`);
|
|
31
|
+
for (const selectedWeight of weights) if (!fontWeights.includes(selectedWeight)) throw new Error(`Unknown weight \`${selectedWeight}\` for font \`${fontFamily}\`.\nAvailable weights: ${formatAvailableValues(fontWeights)}`);
|
|
32
|
+
if (styles.length === 0) if (fontStyles.length === 1) styles.push(fontStyles[0]);
|
|
33
|
+
else styles.push("normal");
|
|
34
|
+
for (const selectedStyle of styles) if (!fontStyles.includes(selectedStyle)) throw new Error(`Unknown style \`${selectedStyle}\` for font \`${fontFamily}\`.\nAvailable styles: ${formatAvailableValues(fontStyles)}`);
|
|
35
|
+
if (!ALLOWED_DISPLAY_VALUES.includes(display)) throw new Error(`Invalid display value \`${display}\` for font \`${fontFamily}\`.\nAvailable display values: ${formatAvailableValues(ALLOWED_DISPLAY_VALUES)}`);
|
|
36
|
+
if (axes) {
|
|
37
|
+
if (!fontWeights.includes("variable")) throw new Error("Axes can only be defined for variable fonts.");
|
|
38
|
+
if (weights[0] !== "variable") throw new Error("Axes can only be defined for variable fonts when the weight property is nonexistent or set to `variable`.");
|
|
39
|
+
}
|
|
40
|
+
return {
|
|
41
|
+
fontFamily,
|
|
42
|
+
weights,
|
|
43
|
+
styles,
|
|
44
|
+
display,
|
|
45
|
+
preload,
|
|
46
|
+
selectedVariableAxes: axes,
|
|
47
|
+
fallback,
|
|
48
|
+
adjustFontFallback,
|
|
49
|
+
variable,
|
|
50
|
+
subsets
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
//#endregion
|
|
54
|
+
export { validateGoogleFontOptions };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
//#region src/build/inline-css.d.ts
|
|
2
|
+
type InlineCssManifest = Record<string, string>;
|
|
3
|
+
declare function collectInlineCssManifest(clientDir: string, assetPrefix: string): InlineCssManifest;
|
|
4
|
+
declare function injectInlineCssManifestGlobal(entryPath: string, manifest: InlineCssManifest): boolean;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { collectInlineCssManifest, injectInlineCssManifestGlobal };
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { resolveAssetUrlPrefix, resolveAssetsDir } from "../utils/asset-prefix.js";
|
|
2
|
+
import fs from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
//#region src/build/inline-css.ts
|
|
5
|
+
const INLINE_CSS_GLOBAL_MARKER = "globalThis.__VINEXT_INLINE_CSS__ = ";
|
|
6
|
+
function collectCssFiles(directory) {
|
|
7
|
+
const files = [];
|
|
8
|
+
for (const entry of fs.readdirSync(directory, { withFileTypes: true })) {
|
|
9
|
+
const filePath = path.join(directory, entry.name);
|
|
10
|
+
if (entry.isDirectory()) files.push(...collectCssFiles(filePath));
|
|
11
|
+
else if (entry.isFile() && entry.name.endsWith(".css")) files.push(filePath);
|
|
12
|
+
}
|
|
13
|
+
return files;
|
|
14
|
+
}
|
|
15
|
+
function toUrlPath(filePath) {
|
|
16
|
+
return filePath.split(path.sep).join("/");
|
|
17
|
+
}
|
|
18
|
+
function addPathnameAlias(manifest, href, css) {
|
|
19
|
+
try {
|
|
20
|
+
const url = new URL(href);
|
|
21
|
+
manifest[url.pathname] = css;
|
|
22
|
+
} catch {}
|
|
23
|
+
}
|
|
24
|
+
function collectInlineCssManifest(clientDir, assetPrefix) {
|
|
25
|
+
const assetsDir = path.join(clientDir, resolveAssetsDir(assetPrefix));
|
|
26
|
+
if (!fs.existsSync(assetsDir)) return {};
|
|
27
|
+
const urlPrefix = resolveAssetUrlPrefix(assetPrefix);
|
|
28
|
+
const manifest = {};
|
|
29
|
+
for (const filePath of collectCssFiles(assetsDir)) {
|
|
30
|
+
const href = `${urlPrefix}${toUrlPath(path.relative(assetsDir, filePath))}`;
|
|
31
|
+
const css = fs.readFileSync(filePath, "utf8");
|
|
32
|
+
manifest[href] = css;
|
|
33
|
+
addPathnameAlias(manifest, href, css);
|
|
34
|
+
}
|
|
35
|
+
return manifest;
|
|
36
|
+
}
|
|
37
|
+
function createInlineCssManifestGlobalCode(manifest) {
|
|
38
|
+
return `${INLINE_CSS_GLOBAL_MARKER}${JSON.stringify(manifest)};`;
|
|
39
|
+
}
|
|
40
|
+
function injectInlineCssManifestGlobal(entryPath, manifest) {
|
|
41
|
+
if (Object.keys(manifest).length === 0 || !fs.existsSync(entryPath)) return false;
|
|
42
|
+
const code = fs.readFileSync(entryPath, "utf8");
|
|
43
|
+
if (code.includes(INLINE_CSS_GLOBAL_MARKER)) return false;
|
|
44
|
+
fs.writeFileSync(entryPath, `${createInlineCssManifestGlobalCode(manifest)}\n${code}`);
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { collectInlineCssManifest, injectInlineCssManifestGlobal };
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
//#region src/build/layout-classification-types.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared types for the layout classification pipeline.
|
|
4
|
+
*
|
|
5
|
+
* Kept in a leaf module so both `report.ts` (which implements segment-config
|
|
6
|
+
* classification) and `layout-classification.ts` (which composes the full
|
|
7
|
+
* pipeline) can import them without forming a cycle.
|
|
8
|
+
*
|
|
9
|
+
* The wire contract between build and runtime is intentionally narrow: the
|
|
10
|
+
* runtime only cares about the `"static" | "dynamic"` decision for a layout.
|
|
11
|
+
* Reasons live in a sidecar structure so operators can trace how each
|
|
12
|
+
* decision was made without bloating the hot-path payload.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* Structured record of which classifier layer produced a decision and what
|
|
16
|
+
* evidence it used. Kept as a discriminated union so each layer can carry
|
|
17
|
+
* its own diagnostic shape without the consumer having to fall back to
|
|
18
|
+
* stringly-typed `reason` fields.
|
|
19
|
+
*/
|
|
20
|
+
type ClassificationReason = {
|
|
21
|
+
layer: "segment-config";
|
|
22
|
+
key: "dynamic" | "revalidate";
|
|
23
|
+
value: string | number;
|
|
24
|
+
} | {
|
|
25
|
+
layer: "module-graph";
|
|
26
|
+
result: "static" | "needs-probe";
|
|
27
|
+
firstShimMatch?: string;
|
|
28
|
+
} | {
|
|
29
|
+
layer: "runtime-probe";
|
|
30
|
+
outcome: "static" | "dynamic";
|
|
31
|
+
error?: string;
|
|
32
|
+
} | {
|
|
33
|
+
layer: "no-classifier";
|
|
34
|
+
};
|
|
35
|
+
type ModuleGraphStaticReason = {
|
|
36
|
+
layer: "module-graph";
|
|
37
|
+
result: "static";
|
|
38
|
+
firstShimMatch?: string;
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Build-time classification outcome for a single layout. Tagged with `kind`
|
|
42
|
+
* so callers can branch exhaustively and carry diagnostic reasons alongside
|
|
43
|
+
* the decision.
|
|
44
|
+
*
|
|
45
|
+
* `absent` means no classifier layer had anything to say — the caller should
|
|
46
|
+
* defer to the next layer (or to the runtime probe).
|
|
47
|
+
*/
|
|
48
|
+
type LayoutBuildClassification = {
|
|
49
|
+
kind: "absent";
|
|
50
|
+
} | {
|
|
51
|
+
kind: "static";
|
|
52
|
+
reason: ClassificationReason;
|
|
53
|
+
} | {
|
|
54
|
+
kind: "dynamic";
|
|
55
|
+
reason: ClassificationReason;
|
|
56
|
+
} | {
|
|
57
|
+
kind: "needs-probe";
|
|
58
|
+
reason: ClassificationReason;
|
|
59
|
+
};
|
|
60
|
+
//#endregion
|
|
61
|
+
export { ClassificationReason, LayoutBuildClassification, ModuleGraphStaticReason };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { ClassificationReason, LayoutBuildClassification, ModuleGraphStaticReason } from "./layout-classification-types.js";
|
|
2
|
+
|
|
3
|
+
//#region src/build/layout-classification.d.ts
|
|
4
|
+
type ModuleGraphClassification = "static" | "needs-probe";
|
|
5
|
+
type ModuleGraphClassificationResult = {
|
|
6
|
+
result: ModuleGraphClassification; /** First dynamic shim module ID encountered during BFS, when any. */
|
|
7
|
+
firstShimMatch?: string;
|
|
8
|
+
};
|
|
9
|
+
type ModuleInfoProvider = {
|
|
10
|
+
getModuleInfo(id: string): {
|
|
11
|
+
importedIds: string[];
|
|
12
|
+
dynamicImportedIds: string[];
|
|
13
|
+
} | null;
|
|
14
|
+
};
|
|
15
|
+
type LayoutEntry = {
|
|
16
|
+
/** Rollup/Vite module ID for the layout file. */moduleId: string; /** Directory depth from the app root, used to build the stable layout ID. */
|
|
17
|
+
treePosition: number; /** Segment config source code extracted at build time, or null when absent. */
|
|
18
|
+
segmentConfig?: {
|
|
19
|
+
code: string;
|
|
20
|
+
} | null;
|
|
21
|
+
};
|
|
22
|
+
type RouteForClassification = {
|
|
23
|
+
layouts: readonly LayoutEntry[];
|
|
24
|
+
routeSegments: string[];
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* BFS traversal of a layout's dependency tree. If any transitive import
|
|
28
|
+
* resolves to a dynamic shim path (headers, cache, server), the layout
|
|
29
|
+
* cannot be proven static at build time and needs a runtime probe.
|
|
30
|
+
*
|
|
31
|
+
* The returned object carries the classification plus the first matching
|
|
32
|
+
* shim module ID (when any). Operators use the shim ID via the debug
|
|
33
|
+
* channel to trace why a layout was flagged for probing.
|
|
34
|
+
*/
|
|
35
|
+
declare function classifyLayoutByModuleGraph(layoutModuleId: string, dynamicShimPaths: ReadonlySet<string>, moduleInfo: ModuleInfoProvider): ModuleGraphClassificationResult;
|
|
36
|
+
declare function moduleGraphReason(graphResult: ModuleGraphClassificationResult & {
|
|
37
|
+
result: "static";
|
|
38
|
+
}): ModuleGraphStaticReason;
|
|
39
|
+
declare function moduleGraphReason(graphResult: ModuleGraphClassificationResult): ClassificationReason;
|
|
40
|
+
declare function isStaticModuleGraphResult(graphResult: ModuleGraphClassificationResult): graphResult is ModuleGraphClassificationResult & {
|
|
41
|
+
result: "static";
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Classifies all layouts across all routes using a two-layer strategy:
|
|
45
|
+
*
|
|
46
|
+
* 1. Segment config (Layer 1) — short-circuits to "static" or "dynamic"
|
|
47
|
+
* 2. Module graph (Layer 2) — BFS for dynamic shim imports → "static" or "needs-probe"
|
|
48
|
+
*
|
|
49
|
+
* Shared layouts (same file appearing in multiple routes) are classified once
|
|
50
|
+
* and deduplicated by layout ID.
|
|
51
|
+
*
|
|
52
|
+
* @internal Not called by production code. The `renderChunk` hook in
|
|
53
|
+
* `index.ts` calls `classifyLayoutByModuleGraph` directly and composes
|
|
54
|
+
* via the numeric-index manifest in `route-classification-manifest.ts`.
|
|
55
|
+
* Used only by `tests/layout-classification.test.ts`.
|
|
56
|
+
*/
|
|
57
|
+
declare function classifyAllRouteLayouts(routes: readonly RouteForClassification[], dynamicShimPaths: ReadonlySet<string>, moduleInfo: ModuleInfoProvider): Map<string, LayoutBuildClassification>;
|
|
58
|
+
//#endregion
|
|
59
|
+
export { ModuleInfoProvider, classifyAllRouteLayouts, classifyLayoutByModuleGraph, isStaticModuleGraphResult, moduleGraphReason };
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { AppElementsWire } from "../server/app-elements-wire.js";
|
|
2
|
+
import "../server/app-elements.js";
|
|
3
|
+
import { classifyLayoutSegmentConfig } from "./report.js";
|
|
4
|
+
import { createAppPageTreePath } from "../server/app-page-route-wiring.js";
|
|
5
|
+
//#region src/build/layout-classification.ts
|
|
6
|
+
/**
|
|
7
|
+
* Layout classification — determines whether each layout in an App Router
|
|
8
|
+
* route tree is static or dynamic via two complementary detection layers:
|
|
9
|
+
*
|
|
10
|
+
* Layer 1: Segment config (`export const dynamic`, `export const revalidate`)
|
|
11
|
+
* Layer 2: Module graph traversal (checks for transitive dynamic shim imports)
|
|
12
|
+
*
|
|
13
|
+
* Layer 3 (probe-based runtime detection) is handled separately in
|
|
14
|
+
* `app-page-execution.ts` at request time.
|
|
15
|
+
*
|
|
16
|
+
* Every result is carried as a `LayoutBuildClassification` tagged variant so
|
|
17
|
+
* operators can trace which layer produced a decision via the structured
|
|
18
|
+
* `ClassificationReason` sidecar without that metadata leaking onto the wire.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* BFS traversal of a layout's dependency tree. If any transitive import
|
|
22
|
+
* resolves to a dynamic shim path (headers, cache, server), the layout
|
|
23
|
+
* cannot be proven static at build time and needs a runtime probe.
|
|
24
|
+
*
|
|
25
|
+
* The returned object carries the classification plus the first matching
|
|
26
|
+
* shim module ID (when any). Operators use the shim ID via the debug
|
|
27
|
+
* channel to trace why a layout was flagged for probing.
|
|
28
|
+
*/
|
|
29
|
+
function classifyLayoutByModuleGraph(layoutModuleId, dynamicShimPaths, moduleInfo) {
|
|
30
|
+
const visited = /* @__PURE__ */ new Set();
|
|
31
|
+
const queue = [layoutModuleId];
|
|
32
|
+
let head = 0;
|
|
33
|
+
while (head < queue.length) {
|
|
34
|
+
const currentId = queue[head++];
|
|
35
|
+
if (visited.has(currentId)) continue;
|
|
36
|
+
visited.add(currentId);
|
|
37
|
+
if (dynamicShimPaths.has(currentId)) return {
|
|
38
|
+
result: "needs-probe",
|
|
39
|
+
firstShimMatch: currentId
|
|
40
|
+
};
|
|
41
|
+
const info = moduleInfo.getModuleInfo(currentId);
|
|
42
|
+
if (!info) continue;
|
|
43
|
+
for (const importedId of info.importedIds) if (!visited.has(importedId)) queue.push(importedId);
|
|
44
|
+
for (const dynamicId of info.dynamicImportedIds) if (!visited.has(dynamicId)) queue.push(dynamicId);
|
|
45
|
+
}
|
|
46
|
+
return { result: "static" };
|
|
47
|
+
}
|
|
48
|
+
function moduleGraphReason(graphResult) {
|
|
49
|
+
if (graphResult.firstShimMatch === void 0) return {
|
|
50
|
+
layer: "module-graph",
|
|
51
|
+
result: graphResult.result
|
|
52
|
+
};
|
|
53
|
+
return {
|
|
54
|
+
layer: "module-graph",
|
|
55
|
+
result: graphResult.result,
|
|
56
|
+
firstShimMatch: graphResult.firstShimMatch
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function isStaticModuleGraphResult(graphResult) {
|
|
60
|
+
return graphResult.result === "static";
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Classifies all layouts across all routes using a two-layer strategy:
|
|
64
|
+
*
|
|
65
|
+
* 1. Segment config (Layer 1) — short-circuits to "static" or "dynamic"
|
|
66
|
+
* 2. Module graph (Layer 2) — BFS for dynamic shim imports → "static" or "needs-probe"
|
|
67
|
+
*
|
|
68
|
+
* Shared layouts (same file appearing in multiple routes) are classified once
|
|
69
|
+
* and deduplicated by layout ID.
|
|
70
|
+
*
|
|
71
|
+
* @internal Not called by production code. The `renderChunk` hook in
|
|
72
|
+
* `index.ts` calls `classifyLayoutByModuleGraph` directly and composes
|
|
73
|
+
* via the numeric-index manifest in `route-classification-manifest.ts`.
|
|
74
|
+
* Used only by `tests/layout-classification.test.ts`.
|
|
75
|
+
*/
|
|
76
|
+
function classifyAllRouteLayouts(routes, dynamicShimPaths, moduleInfo) {
|
|
77
|
+
const result = /* @__PURE__ */ new Map();
|
|
78
|
+
for (const route of routes) for (const layout of route.layouts) {
|
|
79
|
+
const layoutId = AppElementsWire.encodeLayoutId(createAppPageTreePath(route.routeSegments, layout.treePosition));
|
|
80
|
+
if (result.has(layoutId)) continue;
|
|
81
|
+
if (layout.segmentConfig) {
|
|
82
|
+
const configResult = classifyLayoutSegmentConfig(layout.segmentConfig.code);
|
|
83
|
+
if (configResult.kind !== "absent") {
|
|
84
|
+
result.set(layoutId, configResult);
|
|
85
|
+
continue;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
const graphResult = classifyLayoutByModuleGraph(layout.moduleId, dynamicShimPaths, moduleInfo);
|
|
89
|
+
const reason = moduleGraphReason(graphResult);
|
|
90
|
+
result.set(layoutId, {
|
|
91
|
+
kind: graphResult.result,
|
|
92
|
+
reason
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
return result;
|
|
96
|
+
}
|
|
97
|
+
//#endregion
|
|
98
|
+
export { classifyAllRouteLayouts, classifyLayoutByModuleGraph, isStaticModuleGraphResult, moduleGraphReason };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { ResolvedNextConfig } from "../config/next-config.js";
|
|
2
|
+
|
|
3
|
+
//#region src/build/next-client-runtime-manifests.d.ts
|
|
4
|
+
type EmitNextClientRuntimeManifestsOptions = {
|
|
5
|
+
clientDir: string;
|
|
6
|
+
assetsSubdir: string;
|
|
7
|
+
buildId: string;
|
|
8
|
+
rewrites: ResolvedNextConfig["rewrites"];
|
|
9
|
+
};
|
|
10
|
+
declare function buildNextClientBuildManifestContent(rewrites: ResolvedNextConfig["rewrites"]): string;
|
|
11
|
+
declare function buildNextClientSsgManifestContent(): string;
|
|
12
|
+
declare function emitNextClientRuntimeManifests(options: EmitNextClientRuntimeManifestsOptions): void;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { buildNextClientBuildManifestContent, buildNextClientSsgManifestContent, emitNextClientRuntimeManifests };
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import fs from "node:fs";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
//#region src/build/next-client-runtime-manifests.ts
|
|
4
|
+
function normalizeRewriteForClientManifest(rewrite) {
|
|
5
|
+
if (rewrite.destination.startsWith("/")) return {
|
|
6
|
+
has: rewrite.has,
|
|
7
|
+
source: rewrite.source,
|
|
8
|
+
destination: rewrite.destination
|
|
9
|
+
};
|
|
10
|
+
return {
|
|
11
|
+
has: rewrite.has,
|
|
12
|
+
source: rewrite.source
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
function normalizeRewritesForClientManifest(rewrites) {
|
|
16
|
+
return {
|
|
17
|
+
beforeFiles: rewrites.beforeFiles.map(normalizeRewriteForClientManifest),
|
|
18
|
+
afterFiles: rewrites.afterFiles.map(normalizeRewriteForClientManifest),
|
|
19
|
+
fallback: rewrites.fallback.map(normalizeRewriteForClientManifest)
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
function buildNextClientBuildManifestContent(rewrites) {
|
|
23
|
+
const manifest = {
|
|
24
|
+
__rewrites: normalizeRewritesForClientManifest(rewrites),
|
|
25
|
+
sortedPages: []
|
|
26
|
+
};
|
|
27
|
+
return `self.__BUILD_MANIFEST = ${JSON.stringify(manifest)};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()`;
|
|
28
|
+
}
|
|
29
|
+
function buildNextClientSsgManifestContent() {
|
|
30
|
+
return "self.__SSG_MANIFEST=new Set;self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()";
|
|
31
|
+
}
|
|
32
|
+
function emitNextClientRuntimeManifests(options) {
|
|
33
|
+
const manifestDir = path.join(options.clientDir, options.assetsSubdir, options.buildId);
|
|
34
|
+
fs.mkdirSync(manifestDir, { recursive: true });
|
|
35
|
+
fs.writeFileSync(path.join(manifestDir, "_buildManifest.js"), buildNextClientBuildManifestContent(options.rewrites), "utf-8");
|
|
36
|
+
fs.writeFileSync(path.join(manifestDir, "_ssgManifest.js"), buildNextClientSsgManifestContent(), "utf-8");
|
|
37
|
+
}
|
|
38
|
+
//#endregion
|
|
39
|
+
export { buildNextClientBuildManifestContent, buildNextClientSsgManifestContent, emitNextClientRuntimeManifests };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { RouteRow } from "./report.js";
|
|
2
|
+
|
|
3
|
+
//#region src/build/nitro-route-rules.d.ts
|
|
4
|
+
type NitroRouteRuleConfig = Record<string, unknown> & {
|
|
5
|
+
swr?: boolean | number;
|
|
6
|
+
cache?: unknown;
|
|
7
|
+
static?: boolean;
|
|
8
|
+
isr?: boolean | number;
|
|
9
|
+
prerender?: boolean;
|
|
10
|
+
};
|
|
11
|
+
type NitroRouteRules = Record<string, {
|
|
12
|
+
swr: number;
|
|
13
|
+
}>;
|
|
14
|
+
/**
|
|
15
|
+
* Scans the filesystem for route files and generates Nitro `routeRules` for ISR routes.
|
|
16
|
+
*
|
|
17
|
+
* Note: this duplicates the filesystem scanning that `printBuildReport` also performs.
|
|
18
|
+
* The `nitro.setup` hook runs during Nitro initialization (before the build), while
|
|
19
|
+
* `printBuildReport` runs after the build, so sharing results is non-trivial. This is
|
|
20
|
+
* a future optimization target.
|
|
21
|
+
*
|
|
22
|
+
* Unlike `printBuildReport`, this path does not receive `prerenderResult`, so routes
|
|
23
|
+
* classified as `unknown` by static analysis (which `printBuildReport` might upgrade
|
|
24
|
+
* to `static` via speculative prerender) are skipped here.
|
|
25
|
+
*/
|
|
26
|
+
declare function collectNitroRouteRules(options: {
|
|
27
|
+
appDir?: string | null;
|
|
28
|
+
pagesDir?: string | null;
|
|
29
|
+
pageExtensions: string[];
|
|
30
|
+
}): Promise<NitroRouteRules>;
|
|
31
|
+
declare function generateNitroRouteRules(rows: RouteRow[]): NitroRouteRules;
|
|
32
|
+
/**
|
|
33
|
+
* Converts vinext's internal `:param` route syntax to Nitro's rou3
|
|
34
|
+
* pattern format. Nitro uses `rou3` for routeRules matching, which
|
|
35
|
+
* supports `*` (single-segment) and `**` (multi-segment) wildcards.
|
|
36
|
+
*
|
|
37
|
+
* /blog/:slug -> /blog/* (single segment)
|
|
38
|
+
* /docs/:slug+ -> /docs/** (one or more segments — catch-all)
|
|
39
|
+
* /docs/:slug* -> /docs/** (zero or more segments — optional catch-all)
|
|
40
|
+
* /about -> /about (unchanged)
|
|
41
|
+
* /:a/:b produces `/*`/`/*` (consecutive single-segment params)
|
|
42
|
+
*/
|
|
43
|
+
declare function convertToNitroPattern(pattern: string): string;
|
|
44
|
+
declare function mergeNitroRouteRules(existingRouteRules: Record<string, NitroRouteRuleConfig> | undefined, generatedRouteRules: NitroRouteRules): {
|
|
45
|
+
routeRules: Record<string, NitroRouteRuleConfig>;
|
|
46
|
+
skippedRoutes: string[];
|
|
47
|
+
};
|
|
48
|
+
//#endregion
|
|
49
|
+
export { NitroRouteRuleConfig, collectNitroRouteRules, convertToNitroPattern, generateNitroRouteRules, mergeNitroRouteRules };
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { apiRouter, pagesRouter } from "../routing/pages-router.js";
|
|
2
|
+
import { appRouter } from "../routing/app-router.js";
|
|
3
|
+
import { buildReportRows } from "./report.js";
|
|
4
|
+
//#region src/build/nitro-route-rules.ts
|
|
5
|
+
/**
|
|
6
|
+
* Scans the filesystem for route files and generates Nitro `routeRules` for ISR routes.
|
|
7
|
+
*
|
|
8
|
+
* Note: this duplicates the filesystem scanning that `printBuildReport` also performs.
|
|
9
|
+
* The `nitro.setup` hook runs during Nitro initialization (before the build), while
|
|
10
|
+
* `printBuildReport` runs after the build, so sharing results is non-trivial. This is
|
|
11
|
+
* a future optimization target.
|
|
12
|
+
*
|
|
13
|
+
* Unlike `printBuildReport`, this path does not receive `prerenderResult`, so routes
|
|
14
|
+
* classified as `unknown` by static analysis (which `printBuildReport` might upgrade
|
|
15
|
+
* to `static` via speculative prerender) are skipped here.
|
|
16
|
+
*/
|
|
17
|
+
async function collectNitroRouteRules(options) {
|
|
18
|
+
const { appDir, pageExtensions, pagesDir } = options;
|
|
19
|
+
let appRoutes = [];
|
|
20
|
+
let pageRoutes = [];
|
|
21
|
+
let apiRoutes = [];
|
|
22
|
+
if (appDir) appRoutes = await appRouter(appDir, pageExtensions);
|
|
23
|
+
if (pagesDir) {
|
|
24
|
+
const [pages, apis] = await Promise.all([pagesRouter(pagesDir, pageExtensions), apiRouter(pagesDir, pageExtensions)]);
|
|
25
|
+
pageRoutes = pages;
|
|
26
|
+
apiRoutes = apis;
|
|
27
|
+
}
|
|
28
|
+
return generateNitroRouteRules(buildReportRows({
|
|
29
|
+
appRoutes,
|
|
30
|
+
pageRoutes,
|
|
31
|
+
apiRoutes
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
function generateNitroRouteRules(rows) {
|
|
35
|
+
const rules = {};
|
|
36
|
+
for (const row of rows) if (row.type === "isr" && typeof row.revalidate === "number" && Number.isFinite(row.revalidate) && row.revalidate > 0) rules[convertToNitroPattern(row.pattern)] = { swr: row.revalidate };
|
|
37
|
+
return rules;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Converts vinext's internal `:param` route syntax to Nitro's rou3
|
|
41
|
+
* pattern format. Nitro uses `rou3` for routeRules matching, which
|
|
42
|
+
* supports `*` (single-segment) and `**` (multi-segment) wildcards.
|
|
43
|
+
*
|
|
44
|
+
* /blog/:slug -> /blog/* (single segment)
|
|
45
|
+
* /docs/:slug+ -> /docs/** (one or more segments — catch-all)
|
|
46
|
+
* /docs/:slug* -> /docs/** (zero or more segments — optional catch-all)
|
|
47
|
+
* /about -> /about (unchanged)
|
|
48
|
+
* /:a/:b produces `/*`/`/*` (consecutive single-segment params)
|
|
49
|
+
*/
|
|
50
|
+
function convertToNitroPattern(pattern) {
|
|
51
|
+
return pattern.split("/").map((segment) => {
|
|
52
|
+
if (segment.startsWith(":")) return segment.endsWith("+") || segment.endsWith("*") ? "**" : "*";
|
|
53
|
+
return segment;
|
|
54
|
+
}).join("/");
|
|
55
|
+
}
|
|
56
|
+
function mergeNitroRouteRules(existingRouteRules, generatedRouteRules) {
|
|
57
|
+
const routeRules = { ...existingRouteRules };
|
|
58
|
+
const skippedRoutes = [];
|
|
59
|
+
for (const [route, generatedRule] of Object.entries(generatedRouteRules)) {
|
|
60
|
+
const existingRule = routeRules[route];
|
|
61
|
+
if (existingRule && hasUserDefinedCacheRule(existingRule)) {
|
|
62
|
+
skippedRoutes.push(route);
|
|
63
|
+
continue;
|
|
64
|
+
}
|
|
65
|
+
routeRules[route] = {
|
|
66
|
+
...existingRule,
|
|
67
|
+
...generatedRule
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
return {
|
|
71
|
+
routeRules,
|
|
72
|
+
skippedRoutes
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
function hasUserDefinedCacheRule(rule) {
|
|
76
|
+
return rule.swr !== void 0 || rule.cache !== void 0 || rule.static !== void 0 || rule.isr !== void 0 || rule.prerender !== void 0;
|
|
77
|
+
}
|
|
78
|
+
//#endregion
|
|
79
|
+
export { collectNitroRouteRules, convertToNitroPattern, generateNitroRouteRules, mergeNitroRouteRules };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
//#region src/build/precompress.d.ts
|
|
2
|
+
type PrecompressResult = {
|
|
3
|
+
filesCompressed: number;
|
|
4
|
+
totalOriginalBytes: number; /** Sum of brotli-compressed sizes (used for compression ratio reporting). */
|
|
5
|
+
totalBrotliBytes: number;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* Precompress all compressible hashed assets under `clientDir/<assetsDir>/`.
|
|
9
|
+
*
|
|
10
|
+
* Writes `.br`, `.gz`, and `.zst` files alongside each original.
|
|
11
|
+
* Safe to re-run — overwrites existing compressed variants with identical
|
|
12
|
+
* output, and never compresses `.br`, `.gz`, or `.zst` files themselves.
|
|
13
|
+
*
|
|
14
|
+
* `assetsDir` defaults to `"_next/static"` (Next.js's canonical convention,
|
|
15
|
+
* matching `resolveAssetsDir("")`). When `assetPrefix` is configured as a
|
|
16
|
+
* path prefix the build writes assets to a different directory (e.g.
|
|
17
|
+
* `"cdn/_next/static"`); callers should resolve that with
|
|
18
|
+
* `resolveAssetsDir(assetPrefix)` and thread it through. Without this,
|
|
19
|
+
* `assetPrefix` builds would walk an empty `_next/static/` directory and
|
|
20
|
+
* emit zero compressed variants.
|
|
21
|
+
*/
|
|
22
|
+
declare function precompressAssets(clientDir: string, options?: {
|
|
23
|
+
/** Subdirectory under `clientDir` containing hashed assets. Defaults to `"_next/static"`. */assetsDir?: string;
|
|
24
|
+
onProgress?: (completed: number, total: number, file: string) => void;
|
|
25
|
+
}): Promise<PrecompressResult>;
|
|
26
|
+
//#endregion
|
|
27
|
+
export { precompressAssets };
|