@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,83 @@
|
|
|
1
|
+
import { FontStyle } from "./font-utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/shims/font-google-base.d.ts
|
|
4
|
+
type FontOptions = {
|
|
5
|
+
weight?: string | string[];
|
|
6
|
+
style?: string | string[];
|
|
7
|
+
subsets?: string[];
|
|
8
|
+
display?: string;
|
|
9
|
+
preload?: boolean;
|
|
10
|
+
fallback?: string[];
|
|
11
|
+
adjustFontFallback?: boolean | string;
|
|
12
|
+
variable?: string;
|
|
13
|
+
axes?: string[];
|
|
14
|
+
};
|
|
15
|
+
type FontResult = {
|
|
16
|
+
className: string;
|
|
17
|
+
style: FontStyle;
|
|
18
|
+
variable?: string;
|
|
19
|
+
};
|
|
20
|
+
type InternalGoogleFontRuntimeOptions = {
|
|
21
|
+
selfHostedCSS?: string;
|
|
22
|
+
preloadUrls?: string[];
|
|
23
|
+
adjustedFallbackCSS?: string;
|
|
24
|
+
fontWeight?: number;
|
|
25
|
+
fontStyle?: "normal" | "italic";
|
|
26
|
+
};
|
|
27
|
+
type FontLoaderOptions = FontOptions & {
|
|
28
|
+
/**
|
|
29
|
+
* Internal payload injected by the vinext:google-fonts transform after
|
|
30
|
+
* metadata validation. Runtime must prefer these values over user options
|
|
31
|
+
* because they represent the resolved Next-compatible face, including
|
|
32
|
+
* metadata defaults such as italic-only families.
|
|
33
|
+
*/
|
|
34
|
+
_vinext?: {
|
|
35
|
+
font?: InternalGoogleFontRuntimeOptions;
|
|
36
|
+
};
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Build a Google Fonts CSS URL.
|
|
40
|
+
*
|
|
41
|
+
* In production this code path is dead. The build plugin
|
|
42
|
+
* (`vinext:google-fonts` in `src/plugins/fonts.ts`) statically resolves
|
|
43
|
+
* each font call's axis values against the bundled metadata, fetches the
|
|
44
|
+
* Google Fonts CSS, and injects the resulting CSS as
|
|
45
|
+
* `_vinext.font.selfHostedCSS` so the runtime never queries Google. The shim
|
|
46
|
+
* only reaches this builder when the plugin's static parser bails (dynamic
|
|
47
|
+
* options, eval-only shapes), which is dev-only.
|
|
48
|
+
*
|
|
49
|
+
* The dev fallback intentionally has no metadata: shipping the 388 KB
|
|
50
|
+
* `font-data.json` to the Worker bundle would dwarf the rest of the shim,
|
|
51
|
+
* and the production path already has the metadata-aware variant. The
|
|
52
|
+
* tradeoff is that the dev fallback cannot resolve a variable font's
|
|
53
|
+
* actual `wght` axis range. It emits no axis segment when no `weight` is
|
|
54
|
+
* given, which makes Google return the default static face (200) instead
|
|
55
|
+
* of the broken `:wght@100..900` URL that issue #885 reports.
|
|
56
|
+
*/
|
|
57
|
+
declare function buildGoogleFontsUrl(family: string, options: FontOptions): string;
|
|
58
|
+
/**
|
|
59
|
+
* Get collected SSR font class styles (used by the renderer).
|
|
60
|
+
* Note: We don't clear the arrays because fonts are loaded at module import
|
|
61
|
+
* time and need to persist across all requests in the Workers environment.
|
|
62
|
+
*/
|
|
63
|
+
declare function getSSRFontStyles(): string[];
|
|
64
|
+
/**
|
|
65
|
+
* Get collected SSR font URLs (used by the renderer).
|
|
66
|
+
* Note: We don't clear the arrays because fonts are loaded at module import
|
|
67
|
+
* time and need to persist across all requests in the Workers environment.
|
|
68
|
+
*/
|
|
69
|
+
declare function getSSRFontLinks(): string[];
|
|
70
|
+
/**
|
|
71
|
+
* Get collected SSR font preload data (used by the renderer).
|
|
72
|
+
* Returns an array of { href, type } objects for emitting
|
|
73
|
+
* <link rel="preload" as="font" ...> tags.
|
|
74
|
+
*/
|
|
75
|
+
declare function getSSRFontPreloads(): Array<{
|
|
76
|
+
href: string;
|
|
77
|
+
type: string;
|
|
78
|
+
}>;
|
|
79
|
+
type FontLoader = (options?: FontLoaderOptions) => FontResult;
|
|
80
|
+
declare function createFontLoader(family: string): FontLoader;
|
|
81
|
+
declare const googleFonts: Record<string, FontLoader>;
|
|
82
|
+
//#endregion
|
|
83
|
+
export { FontLoader, FontOptions, FontResult, buildGoogleFontsUrl, createFontLoader, googleFonts as default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles };
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
import { escapeCSSString, formatFontClassRule, getFontMimeType, resolveSingleFaceStyle, sanitizeCSSVarName, sanitizeFallback } from "./font-utils.js";
|
|
2
|
+
import { buildGoogleFontsUrl as buildGoogleFontsUrl$1 } from "../build/google-fonts/build-url.js";
|
|
3
|
+
//#region src/shims/font-google-base.ts
|
|
4
|
+
/**
|
|
5
|
+
* next/font/google shim
|
|
6
|
+
*
|
|
7
|
+
* Provides a compatible shim for Next.js Google Fonts.
|
|
8
|
+
*
|
|
9
|
+
* Two modes:
|
|
10
|
+
* 1. **Dev / CDN mode** (default): Loads fonts from Google Fonts CDN via <link> tags.
|
|
11
|
+
* 2. **Self-hosted mode** (production build): The vinext:google-fonts Vite plugin
|
|
12
|
+
* fetches font CSS + .woff2 files at build time, caches them locally, and injects
|
|
13
|
+
* @font-face CSS pointing at local assets. No requests to Google at runtime.
|
|
14
|
+
*
|
|
15
|
+
* Usage:
|
|
16
|
+
* import { Inter } from 'next/font/google';
|
|
17
|
+
* const inter = Inter({ subsets: ['latin'], weight: ['400', '700'] });
|
|
18
|
+
* // inter.className -> stable CSS class for this font/options pair
|
|
19
|
+
* // inter.style -> { fontFamily: "'Inter', 'Inter Fallback'", fontStyle: "normal" }
|
|
20
|
+
* // inter.variable -> CSS class that sets the font CSS variable when requested
|
|
21
|
+
*/
|
|
22
|
+
const injectedFonts = /* @__PURE__ */ new Set();
|
|
23
|
+
/**
|
|
24
|
+
* Convert a font family name to a CSS variable name.
|
|
25
|
+
* e.g., "Inter" -> "--font-inter", "Roboto Mono" -> "--font-roboto-mono"
|
|
26
|
+
*/
|
|
27
|
+
function toVarName(family) {
|
|
28
|
+
return "--font-" + family.toLowerCase().replace(/\s+/g, "-");
|
|
29
|
+
}
|
|
30
|
+
function fontClassSegment(family) {
|
|
31
|
+
return family.toLowerCase().replace(/[^a-z0-9_-]+/g, "_").replace(/^_+|_+$/g, "") || "font";
|
|
32
|
+
}
|
|
33
|
+
function normalizeStringSetOption(value) {
|
|
34
|
+
if (!value) return "";
|
|
35
|
+
return [...new Set((Array.isArray(value) ? value : [value]).map((item) => item.trim()).filter(Boolean))].sort().join(",");
|
|
36
|
+
}
|
|
37
|
+
function normalizeWeightOption(value) {
|
|
38
|
+
const normalized = normalizeStringSetOption(value);
|
|
39
|
+
return normalized === "variable" ? "" : normalized;
|
|
40
|
+
}
|
|
41
|
+
function normalizeStyleOption(value) {
|
|
42
|
+
const values = new Set((Array.isArray(value) ? value : value ? [value] : []).map((item) => item.trim()).filter(Boolean));
|
|
43
|
+
const hasItalic = values.has("italic");
|
|
44
|
+
const hasNormal = values.has("normal");
|
|
45
|
+
if (!hasItalic) return "";
|
|
46
|
+
return hasNormal ? "italic,normal" : "italic";
|
|
47
|
+
}
|
|
48
|
+
function normalizeFallbackOption(value) {
|
|
49
|
+
if (!value) return "";
|
|
50
|
+
return value.map((item) => item.trim()).join(",");
|
|
51
|
+
}
|
|
52
|
+
function normalizeBooleanOption(value) {
|
|
53
|
+
if (value === void 0) return "";
|
|
54
|
+
return value ? "1" : "0";
|
|
55
|
+
}
|
|
56
|
+
function normalizeStringOrBooleanOption(value) {
|
|
57
|
+
if (value === void 0) return "";
|
|
58
|
+
return typeof value === "boolean" ? normalizeBooleanOption(value) : value;
|
|
59
|
+
}
|
|
60
|
+
function hashString(value) {
|
|
61
|
+
let hash = 2166136261;
|
|
62
|
+
for (let i = 0; i < value.length; i++) {
|
|
63
|
+
hash ^= value.charCodeAt(i);
|
|
64
|
+
hash = Math.imul(hash, 16777619) >>> 0;
|
|
65
|
+
}
|
|
66
|
+
return hash.toString(36).padStart(7, "0");
|
|
67
|
+
}
|
|
68
|
+
function createFontIdentity(family, options, cssVarName, fallback) {
|
|
69
|
+
return hashString([
|
|
70
|
+
family,
|
|
71
|
+
cssVarName,
|
|
72
|
+
normalizeWeightOption(options.weight),
|
|
73
|
+
normalizeStyleOption(options.style),
|
|
74
|
+
normalizeStringSetOption(options.subsets),
|
|
75
|
+
options.display ?? "swap",
|
|
76
|
+
normalizeBooleanOption(options.preload),
|
|
77
|
+
normalizeFallbackOption(fallback),
|
|
78
|
+
normalizeStringOrBooleanOption(options.adjustFontFallback),
|
|
79
|
+
normalizeStringSetOption(options.axes),
|
|
80
|
+
options._vinext?.font?.selfHostedCSS ?? "",
|
|
81
|
+
options._vinext?.font?.fontWeight?.toString() ?? "",
|
|
82
|
+
options._vinext?.font?.fontStyle ?? ""
|
|
83
|
+
].join("\0"));
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Build a Google Fonts CSS URL.
|
|
87
|
+
*
|
|
88
|
+
* In production this code path is dead. The build plugin
|
|
89
|
+
* (`vinext:google-fonts` in `src/plugins/fonts.ts`) statically resolves
|
|
90
|
+
* each font call's axis values against the bundled metadata, fetches the
|
|
91
|
+
* Google Fonts CSS, and injects the resulting CSS as
|
|
92
|
+
* `_vinext.font.selfHostedCSS` so the runtime never queries Google. The shim
|
|
93
|
+
* only reaches this builder when the plugin's static parser bails (dynamic
|
|
94
|
+
* options, eval-only shapes), which is dev-only.
|
|
95
|
+
*
|
|
96
|
+
* The dev fallback intentionally has no metadata: shipping the 388 KB
|
|
97
|
+
* `font-data.json` to the Worker bundle would dwarf the rest of the shim,
|
|
98
|
+
* and the production path already has the metadata-aware variant. The
|
|
99
|
+
* tradeoff is that the dev fallback cannot resolve a variable font's
|
|
100
|
+
* actual `wght` axis range. It emits no axis segment when no `weight` is
|
|
101
|
+
* given, which makes Google return the default static face (200) instead
|
|
102
|
+
* of the broken `:wght@100..900` URL that issue #885 reports.
|
|
103
|
+
*/
|
|
104
|
+
function buildGoogleFontsUrl(family, options) {
|
|
105
|
+
const weights = options.weight ? Array.isArray(options.weight) ? options.weight : [options.weight] : [];
|
|
106
|
+
const styles = options.style ? Array.isArray(options.style) ? options.style : [options.style] : [];
|
|
107
|
+
const hasItalic = styles.includes("italic");
|
|
108
|
+
const hasNormal = styles.includes("normal");
|
|
109
|
+
const ital = hasItalic ? [...hasNormal ? ["0"] : [], "1"] : void 0;
|
|
110
|
+
const normalizedWeights = weights.length === 1 && weights[0] === "variable" ? [] : weights;
|
|
111
|
+
return buildGoogleFontsUrl$1(family, {
|
|
112
|
+
wght: normalizedWeights.length > 0 ? normalizedWeights : ital ? ["400"] : void 0,
|
|
113
|
+
ital
|
|
114
|
+
}, options.display ?? "swap");
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Inject a <link> tag for the font (client-side only).
|
|
118
|
+
* On the server, we track font URLs for SSR head injection.
|
|
119
|
+
*/
|
|
120
|
+
function injectFontStylesheet(url) {
|
|
121
|
+
if (injectedFonts.has(url)) return;
|
|
122
|
+
injectedFonts.add(url);
|
|
123
|
+
if (typeof document !== "undefined") {
|
|
124
|
+
const link = document.createElement("link");
|
|
125
|
+
link.rel = "stylesheet";
|
|
126
|
+
link.href = url;
|
|
127
|
+
document.head.appendChild(link);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/** Track which className CSS rules have been injected. */
|
|
131
|
+
const injectedClassRules = /* @__PURE__ */ new Set();
|
|
132
|
+
/**
|
|
133
|
+
* Inject a CSS rule that maps a className to the exported font style.
|
|
134
|
+
*
|
|
135
|
+
* This is what makes `<div className={inter.className}>` apply the font.
|
|
136
|
+
* Next.js generates equivalent rules at build time.
|
|
137
|
+
*
|
|
138
|
+
* In Next.js, the .className class sets font-family and any single
|
|
139
|
+
* font-weight/font-style. CSS variables are handled separately by .variable.
|
|
140
|
+
*/
|
|
141
|
+
function injectClassNameRule(className, fontStyle) {
|
|
142
|
+
if (injectedClassRules.has(className)) return;
|
|
143
|
+
injectedClassRules.add(className);
|
|
144
|
+
const css = formatFontClassRule(className, fontStyle);
|
|
145
|
+
if (typeof document === "undefined") {
|
|
146
|
+
ssrFontStyles.push(css);
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
const styleElement = document.createElement("style");
|
|
150
|
+
styleElement.textContent = css;
|
|
151
|
+
styleElement.setAttribute("data-vinext-font-class", className);
|
|
152
|
+
document.head.appendChild(styleElement);
|
|
153
|
+
}
|
|
154
|
+
/** Track which variable class CSS rules have been injected. */
|
|
155
|
+
const injectedVariableRules = /* @__PURE__ */ new Set();
|
|
156
|
+
/**
|
|
157
|
+
* Inject a CSS rule that sets a CSS variable on an element.
|
|
158
|
+
* This is what makes `<html className={inter.variable}>` set the CSS variable
|
|
159
|
+
* that can be referenced by other styles (e.g., Tailwind's font-sans).
|
|
160
|
+
*
|
|
161
|
+
* In Next.js, the .variable class ONLY sets the CSS variable — it does NOT
|
|
162
|
+
* set font-family. This is critical because apps commonly apply multiple
|
|
163
|
+
* .variable classes to <body> (e.g., geistSans.variable + geistMono.variable).
|
|
164
|
+
* If we also set font-family here, the last class wins due to CSS cascade,
|
|
165
|
+
* causing all text to use that font (e.g., everything becomes monospace).
|
|
166
|
+
*/
|
|
167
|
+
function injectVariableClassRule(variableClassName, cssVarName, fontFamily) {
|
|
168
|
+
if (injectedVariableRules.has(variableClassName)) return;
|
|
169
|
+
injectedVariableRules.add(variableClassName);
|
|
170
|
+
const css = `.${variableClassName} { ${cssVarName}: ${fontFamily}; }\n`;
|
|
171
|
+
if (typeof document === "undefined") {
|
|
172
|
+
ssrFontStyles.push(css);
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
const style = document.createElement("style");
|
|
176
|
+
style.textContent = css;
|
|
177
|
+
style.setAttribute("data-vinext-font-variable", variableClassName);
|
|
178
|
+
document.head.appendChild(style);
|
|
179
|
+
}
|
|
180
|
+
const ssrFontStyles = [];
|
|
181
|
+
/**
|
|
182
|
+
* Get collected SSR font class styles (used by the renderer).
|
|
183
|
+
* Note: We don't clear the arrays because fonts are loaded at module import
|
|
184
|
+
* time and need to persist across all requests in the Workers environment.
|
|
185
|
+
*/
|
|
186
|
+
function getSSRFontStyles() {
|
|
187
|
+
return [...ssrFontStyles];
|
|
188
|
+
}
|
|
189
|
+
const ssrFontUrls = [];
|
|
190
|
+
/**
|
|
191
|
+
* Get collected SSR font URLs (used by the renderer).
|
|
192
|
+
* Note: We don't clear the arrays because fonts are loaded at module import
|
|
193
|
+
* time and need to persist across all requests in the Workers environment.
|
|
194
|
+
*/
|
|
195
|
+
function getSSRFontLinks() {
|
|
196
|
+
return [...ssrFontUrls];
|
|
197
|
+
}
|
|
198
|
+
const ssrFontPreloads = [];
|
|
199
|
+
const ssrFontPreloadHrefs = /* @__PURE__ */ new Set();
|
|
200
|
+
/**
|
|
201
|
+
* Get collected SSR font preload data (used by the renderer).
|
|
202
|
+
* Returns an array of { href, type } objects for emitting
|
|
203
|
+
* <link rel="preload" as="font" ...> tags.
|
|
204
|
+
*/
|
|
205
|
+
function getSSRFontPreloads() {
|
|
206
|
+
return [...ssrFontPreloads];
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Collect build-selected font file URLs for preload link generation.
|
|
210
|
+
* Only collects on the server (SSR). Deduplicates by href using a Set for O(1) lookups.
|
|
211
|
+
*/
|
|
212
|
+
function collectFontPreloads(urls) {
|
|
213
|
+
if (typeof document !== "undefined") return;
|
|
214
|
+
for (const href of urls) if (href.startsWith("/") && !ssrFontPreloadHrefs.has(href)) {
|
|
215
|
+
ssrFontPreloadHrefs.add(href);
|
|
216
|
+
ssrFontPreloads.push({
|
|
217
|
+
href,
|
|
218
|
+
type: getFontMimeType(href)
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/** Track injected self-hosted @font-face blocks (deduplicate) */
|
|
223
|
+
const injectedSelfHosted = /* @__PURE__ */ new Set();
|
|
224
|
+
/**
|
|
225
|
+
* Inject self-hosted @font-face CSS (from the build plugin).
|
|
226
|
+
* This replaces the CDN <link> tag with inline CSS.
|
|
227
|
+
*/
|
|
228
|
+
function injectSelfHostedCSS(css, preloadUrls = []) {
|
|
229
|
+
collectFontPreloads(preloadUrls);
|
|
230
|
+
if (injectedSelfHosted.has(css)) return;
|
|
231
|
+
injectedSelfHosted.add(css);
|
|
232
|
+
if (typeof document === "undefined") {
|
|
233
|
+
ssrFontStyles.push(css);
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
const style = document.createElement("style");
|
|
237
|
+
style.textContent = css;
|
|
238
|
+
style.setAttribute("data-vinext-font-selfhosted", "true");
|
|
239
|
+
document.head.appendChild(style);
|
|
240
|
+
}
|
|
241
|
+
function createFontLoader(family) {
|
|
242
|
+
return function fontLoader(options = {}) {
|
|
243
|
+
const internal = options._vinext?.font;
|
|
244
|
+
const fallback = options.fallback ?? [];
|
|
245
|
+
const adjustedFallback = options.adjustFontFallback === false || !internal?.adjustedFallbackCSS ? [] : [`'${escapeCSSString(family)} Fallback'`];
|
|
246
|
+
const fontFamily = [
|
|
247
|
+
`'${escapeCSSString(family)}'`,
|
|
248
|
+
...adjustedFallback,
|
|
249
|
+
...fallback.map(sanitizeFallback)
|
|
250
|
+
].join(", ");
|
|
251
|
+
const defaultVarName = toVarName(family);
|
|
252
|
+
const cssVarName = options.variable ? sanitizeCSSVarName(options.variable) ?? defaultVarName : defaultVarName;
|
|
253
|
+
const id = createFontIdentity(family, options, cssVarName, fallback);
|
|
254
|
+
const classSegment = fontClassSegment(family);
|
|
255
|
+
const className = `__font_${classSegment}_${id}`;
|
|
256
|
+
const variableClassName = `__variable_${classSegment}_${id}`;
|
|
257
|
+
const style = resolveSingleFaceStyle({
|
|
258
|
+
fontFamily,
|
|
259
|
+
weight: options.weight,
|
|
260
|
+
style: options.style,
|
|
261
|
+
internalWeight: internal?.fontWeight,
|
|
262
|
+
internalStyle: internal?.fontStyle,
|
|
263
|
+
google: true
|
|
264
|
+
});
|
|
265
|
+
if (internal?.selfHostedCSS) injectSelfHostedCSS(internal.selfHostedCSS, internal.preloadUrls);
|
|
266
|
+
else {
|
|
267
|
+
const url = buildGoogleFontsUrl(family, options);
|
|
268
|
+
injectFontStylesheet(url);
|
|
269
|
+
if (typeof document === "undefined") {
|
|
270
|
+
if (!ssrFontUrls.includes(url)) ssrFontUrls.push(url);
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
if (options.adjustFontFallback !== false && internal?.adjustedFallbackCSS) injectSelfHostedCSS(internal.adjustedFallbackCSS);
|
|
274
|
+
injectClassNameRule(className, style);
|
|
275
|
+
if (options.variable) injectVariableClassRule(variableClassName, cssVarName, fontFamily);
|
|
276
|
+
return {
|
|
277
|
+
className,
|
|
278
|
+
style,
|
|
279
|
+
...options.variable ? { variable: variableClassName } : {}
|
|
280
|
+
};
|
|
281
|
+
};
|
|
282
|
+
}
|
|
283
|
+
const googleFonts = new Proxy({}, { get(_target, prop) {
|
|
284
|
+
if (typeof prop !== "string") return void 0;
|
|
285
|
+
if (prop === "__esModule") return true;
|
|
286
|
+
if (prop === "default") return googleFonts;
|
|
287
|
+
return createFontLoader(prop.replace(/_/g, " ").replace(/([a-z])([A-Z])/g, "$1 $2"));
|
|
288
|
+
} });
|
|
289
|
+
//#endregion
|
|
290
|
+
export { buildGoogleFontsUrl, createFontLoader, googleFonts as default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles };
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { FontStyle } from "./font-utils.js";
|
|
2
|
+
|
|
3
|
+
//#region src/shims/font-local.d.ts
|
|
4
|
+
type LocalFontSrc = {
|
|
5
|
+
path: string;
|
|
6
|
+
weight?: string;
|
|
7
|
+
style?: string;
|
|
8
|
+
};
|
|
9
|
+
type LocalFontOptions = {
|
|
10
|
+
src: string | LocalFontSrc | LocalFontSrc[];
|
|
11
|
+
display?: string;
|
|
12
|
+
weight?: string;
|
|
13
|
+
style?: string;
|
|
14
|
+
fallback?: string[];
|
|
15
|
+
preload?: boolean;
|
|
16
|
+
variable?: string;
|
|
17
|
+
adjustFontFallback?: boolean | string;
|
|
18
|
+
declarations?: Array<{
|
|
19
|
+
prop: string;
|
|
20
|
+
value: string;
|
|
21
|
+
}>;
|
|
22
|
+
_vinext?: {
|
|
23
|
+
font?: {
|
|
24
|
+
family?: unknown;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
type FontResult = {
|
|
29
|
+
className: string;
|
|
30
|
+
style: FontStyle;
|
|
31
|
+
variable?: string;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Get collected SSR font styles (used by the renderer).
|
|
35
|
+
* Note: We don't clear the arrays because fonts are loaded at module import
|
|
36
|
+
* time and need to persist across all requests in the Workers environment.
|
|
37
|
+
*/
|
|
38
|
+
declare function getSSRFontStyles(): string[];
|
|
39
|
+
/**
|
|
40
|
+
* Get collected SSR font preload data (used by the renderer).
|
|
41
|
+
* Returns an array of { href, type } objects for emitting
|
|
42
|
+
* <link rel="preload" as="font" ...> tags.
|
|
43
|
+
*/
|
|
44
|
+
declare function getSSRFontPreloads(): Array<{
|
|
45
|
+
href: string;
|
|
46
|
+
type: string;
|
|
47
|
+
}>;
|
|
48
|
+
declare function localFont(options: LocalFontOptions): FontResult;
|
|
49
|
+
//#endregion
|
|
50
|
+
export { localFont as default, getSSRFontPreloads, getSSRFontStyles };
|
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
import { escapeCSSString, formatFontClassRule, getFontMimeType, resolveSingleFaceStyle, sanitizeCSSVarName, sanitizeFallback, sanitizeFontDescriptorValue } from "./font-utils.js";
|
|
2
|
+
//#region src/shims/font-local.ts
|
|
3
|
+
/**
|
|
4
|
+
* next/font/local shim
|
|
5
|
+
*
|
|
6
|
+
* Provides a runtime-compatible shim for Next.js local fonts.
|
|
7
|
+
* Generates @font-face CSS declarations and returns an object
|
|
8
|
+
* with className, style, and variable properties.
|
|
9
|
+
*
|
|
10
|
+
* Supports both client-side injection and SSR collection,
|
|
11
|
+
* matching the patterns used by the Google font shim.
|
|
12
|
+
*
|
|
13
|
+
* Usage:
|
|
14
|
+
* import localFont from 'next/font/local';
|
|
15
|
+
* const myFont = localFont({ src: './my-font.woff2' });
|
|
16
|
+
* // myFont.className -> unique CSS class
|
|
17
|
+
* // myFont.style -> { fontFamily: "'__local_font_0', sans-serif" }
|
|
18
|
+
* // myFont.variable -> generated class name when requested
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Validate a CSS property name for use in declarations.
|
|
22
|
+
*
|
|
23
|
+
* Only allows standard CSS property names (lowercase letters and hyphens)
|
|
24
|
+
* and custom properties (--prefixed). Rejects anything that could inject
|
|
25
|
+
* CSS rules via crafted property names.
|
|
26
|
+
*/
|
|
27
|
+
function sanitizeCSSProperty(prop) {
|
|
28
|
+
if (/^(--)?[a-zA-Z][a-zA-Z0-9-]*$/.test(prop)) return prop;
|
|
29
|
+
}
|
|
30
|
+
function sanitizeInternalFontFamily(name) {
|
|
31
|
+
if (typeof name !== "string" || name.length === 0) return void 0;
|
|
32
|
+
if (/^[$_a-zA-Z][$_a-zA-Z0-9]*$/.test(name)) return name;
|
|
33
|
+
}
|
|
34
|
+
let classCounter = 0;
|
|
35
|
+
const injectedFonts = /* @__PURE__ */ new Set();
|
|
36
|
+
function generateFontFaceCSS(family, options, sources) {
|
|
37
|
+
const display = options.display ?? "swap";
|
|
38
|
+
const rules = [];
|
|
39
|
+
for (const src of sources) {
|
|
40
|
+
const weight = sanitizeFontDescriptorValue(src.weight ?? options.weight ?? "400") ?? "400";
|
|
41
|
+
const style = sanitizeFontDescriptorValue(src.style ?? options.style ?? "normal") ?? "normal";
|
|
42
|
+
const format = src.path.endsWith(".woff2") ? "woff2" : src.path.endsWith(".woff") ? "woff" : src.path.endsWith(".ttf") ? "truetype" : src.path.endsWith(".otf") ? "opentype" : "woff2";
|
|
43
|
+
rules.push(`@font-face {
|
|
44
|
+
font-family: '${escapeCSSString(family)}';
|
|
45
|
+
src: url('${escapeCSSString(src.path)}') format('${format}');
|
|
46
|
+
font-weight: ${weight};
|
|
47
|
+
font-style: ${style};
|
|
48
|
+
font-display: ${display};
|
|
49
|
+
}`);
|
|
50
|
+
}
|
|
51
|
+
if (options.declarations) for (const decl of options.declarations) {
|
|
52
|
+
const safeProp = sanitizeCSSProperty(decl.prop);
|
|
53
|
+
const safeValue = sanitizeFontDescriptorValue(decl.value);
|
|
54
|
+
if (safeProp && safeValue) rules.push(`@font-face { font-family: '${escapeCSSString(family)}'; ${safeProp}: ${safeValue}; }`);
|
|
55
|
+
}
|
|
56
|
+
return rules.join("\n");
|
|
57
|
+
}
|
|
58
|
+
const ssrFontStyles = [];
|
|
59
|
+
const ssrFontPreloads = [];
|
|
60
|
+
const ssrFontPreloadHrefs = /* @__PURE__ */ new Set();
|
|
61
|
+
/**
|
|
62
|
+
* Get collected SSR font styles (used by the renderer).
|
|
63
|
+
* Note: We don't clear the arrays because fonts are loaded at module import
|
|
64
|
+
* time and need to persist across all requests in the Workers environment.
|
|
65
|
+
*/
|
|
66
|
+
function getSSRFontStyles() {
|
|
67
|
+
return [...ssrFontStyles];
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Get collected SSR font preload data (used by the renderer).
|
|
71
|
+
* Returns an array of { href, type } objects for emitting
|
|
72
|
+
* <link rel="preload" as="font" ...> tags.
|
|
73
|
+
*/
|
|
74
|
+
function getSSRFontPreloads() {
|
|
75
|
+
return [...ssrFontPreloads];
|
|
76
|
+
}
|
|
77
|
+
function injectFontFaceCSS(css, id) {
|
|
78
|
+
if (injectedFonts.has(id)) return;
|
|
79
|
+
injectedFonts.add(id);
|
|
80
|
+
if (typeof document === "undefined") {
|
|
81
|
+
ssrFontStyles.push(css);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
const style = document.createElement("style");
|
|
85
|
+
style.textContent = css;
|
|
86
|
+
style.setAttribute("data-vinext-font", id);
|
|
87
|
+
document.head.appendChild(style);
|
|
88
|
+
}
|
|
89
|
+
/** Track which className CSS rules have been injected. */
|
|
90
|
+
const injectedClassRules = /* @__PURE__ */ new Set();
|
|
91
|
+
/**
|
|
92
|
+
* Inject a CSS rule that maps a className to the exported font style.
|
|
93
|
+
*
|
|
94
|
+
* This is what makes `<div className={font.className}>` apply the font.
|
|
95
|
+
*
|
|
96
|
+
* In Next.js, the .className class sets font-family and any single
|
|
97
|
+
* font-weight/font-style. CSS variables are handled separately by .variable.
|
|
98
|
+
*/
|
|
99
|
+
function injectClassNameRule(className, fontStyle) {
|
|
100
|
+
if (injectedClassRules.has(className)) return;
|
|
101
|
+
injectedClassRules.add(className);
|
|
102
|
+
const css = formatFontClassRule(className, fontStyle);
|
|
103
|
+
if (typeof document === "undefined") {
|
|
104
|
+
ssrFontStyles.push(css);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
const style = document.createElement("style");
|
|
108
|
+
style.textContent = css;
|
|
109
|
+
style.setAttribute("data-vinext-font-class", className);
|
|
110
|
+
document.head.appendChild(style);
|
|
111
|
+
}
|
|
112
|
+
/** Track which variable class CSS rules have been injected. */
|
|
113
|
+
const injectedVariableRules = /* @__PURE__ */ new Set();
|
|
114
|
+
/** Track which :root CSS variable rules have been injected. */
|
|
115
|
+
const injectedRootVariables = /* @__PURE__ */ new Set();
|
|
116
|
+
/**
|
|
117
|
+
* Inject a CSS rule that sets a CSS variable on an element.
|
|
118
|
+
* This is what makes `<html className={font.variable}>` set the CSS variable
|
|
119
|
+
* that can be referenced by other styles (e.g., Tailwind's font-sans).
|
|
120
|
+
*
|
|
121
|
+
* In Next.js, the .variable class ONLY sets the CSS variable — it does NOT
|
|
122
|
+
* set font-family. This is critical because apps commonly apply multiple
|
|
123
|
+
* .variable classes to <body> (e.g., geistSans.variable + geistMono.variable).
|
|
124
|
+
* If we also set font-family here, the last class wins due to CSS cascade,
|
|
125
|
+
* causing all text to use that font (e.g., everything becomes monospace).
|
|
126
|
+
*/
|
|
127
|
+
function injectVariableClassRule(variableClassName, cssVarName, fontFamily) {
|
|
128
|
+
if (injectedVariableRules.has(variableClassName)) return;
|
|
129
|
+
injectedVariableRules.add(variableClassName);
|
|
130
|
+
let css = `.${variableClassName} { ${cssVarName}: ${fontFamily}; }\n`;
|
|
131
|
+
if (!injectedRootVariables.has(cssVarName)) {
|
|
132
|
+
injectedRootVariables.add(cssVarName);
|
|
133
|
+
css += `:root { ${cssVarName}: ${fontFamily}; }\n`;
|
|
134
|
+
}
|
|
135
|
+
if (typeof document === "undefined") {
|
|
136
|
+
ssrFontStyles.push(css);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
const style = document.createElement("style");
|
|
140
|
+
style.textContent = css;
|
|
141
|
+
style.setAttribute("data-vinext-font-variable", variableClassName);
|
|
142
|
+
document.head.appendChild(style);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Normalize the `src` option into a flat array of `{ path, weight?, style? }`.
|
|
146
|
+
* Handles string, single object, and array forms.
|
|
147
|
+
*/
|
|
148
|
+
function normalizeSources(options) {
|
|
149
|
+
if (Array.isArray(options.src)) return options.src;
|
|
150
|
+
if (typeof options.src === "string") return [{ path: options.src }];
|
|
151
|
+
return [options.src];
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Collect font source URLs for preload link generation.
|
|
155
|
+
* Only collects on the server (SSR). Deduplicates by href using a Set for O(1) lookups.
|
|
156
|
+
*/
|
|
157
|
+
function collectFontPreloads(sources) {
|
|
158
|
+
if (typeof document !== "undefined") return;
|
|
159
|
+
for (const src of sources) {
|
|
160
|
+
const href = src.path;
|
|
161
|
+
if (href && href.startsWith("/") && !ssrFontPreloadHrefs.has(href)) {
|
|
162
|
+
ssrFontPreloadHrefs.add(href);
|
|
163
|
+
ssrFontPreloads.push({
|
|
164
|
+
href,
|
|
165
|
+
type: getFontMimeType(href)
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function localFont(options) {
|
|
171
|
+
const id = classCounter++;
|
|
172
|
+
const sources = normalizeSources(options);
|
|
173
|
+
const singleSource = sources.length === 1 ? sources[0] : void 0;
|
|
174
|
+
const family = sanitizeInternalFontFamily(options._vinext?.font?.family) ?? `__local_font_${id}`;
|
|
175
|
+
const className = `__font_local_${id}`;
|
|
176
|
+
const fontFamily = `'${family}', ${(options.fallback ?? ["sans-serif"]).map(sanitizeFallback).join(", ")}`;
|
|
177
|
+
const cssVarName = options.variable ? sanitizeCSSVarName(options.variable) : void 0;
|
|
178
|
+
const variableClassName = `__variable_local_${id}`;
|
|
179
|
+
const style = singleSource ? resolveSingleFaceStyle({
|
|
180
|
+
fontFamily,
|
|
181
|
+
weight: singleSource.weight ?? options.weight,
|
|
182
|
+
style: singleSource.style ?? options.style
|
|
183
|
+
}) : { fontFamily };
|
|
184
|
+
collectFontPreloads(sources);
|
|
185
|
+
injectFontFaceCSS(generateFontFaceCSS(family, options, sources), className);
|
|
186
|
+
injectClassNameRule(className, style);
|
|
187
|
+
if (cssVarName) injectVariableClassRule(variableClassName, cssVarName, fontFamily);
|
|
188
|
+
return {
|
|
189
|
+
className,
|
|
190
|
+
style,
|
|
191
|
+
...cssVarName ? { variable: variableClassName } : {}
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
//#endregion
|
|
195
|
+
export { localFont as default, getSSRFontPreloads, getSSRFontStyles };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
//#region src/shims/font-utils.d.ts
|
|
2
|
+
type FontStyle = {
|
|
3
|
+
fontFamily: string;
|
|
4
|
+
fontWeight?: number;
|
|
5
|
+
fontStyle?: string;
|
|
6
|
+
};
|
|
7
|
+
type FontFaceStyleInput = {
|
|
8
|
+
fontFamily: string;
|
|
9
|
+
weight?: string | string[];
|
|
10
|
+
style?: string | string[];
|
|
11
|
+
internalWeight?: number;
|
|
12
|
+
internalStyle?: string;
|
|
13
|
+
google?: boolean;
|
|
14
|
+
};
|
|
15
|
+
/**
|
|
16
|
+
* Escape a string for safe interpolation inside a CSS single-quoted string.
|
|
17
|
+
*
|
|
18
|
+
* Prevents CSS injection by escaping characters that could break out of
|
|
19
|
+
* a `'...'` CSS string context: backslashes, single quotes, and newlines.
|
|
20
|
+
*
|
|
21
|
+
* Used by font-google-base.ts, font-local.ts, and fallback-metrics.ts.
|
|
22
|
+
*/
|
|
23
|
+
declare function escapeCSSString(value: string): string;
|
|
24
|
+
/**
|
|
25
|
+
* Validate a CSS custom property name (e.g. `--font-inter`).
|
|
26
|
+
*
|
|
27
|
+
* Custom properties must start with `--` and only contain alphanumeric
|
|
28
|
+
* characters, hyphens, and underscores. Anything else could be used to
|
|
29
|
+
* break out of the CSS declaration and inject arbitrary rules.
|
|
30
|
+
*
|
|
31
|
+
* Returns the name if valid, undefined otherwise.
|
|
32
|
+
*/
|
|
33
|
+
declare function sanitizeCSSVarName(name: string): string | undefined;
|
|
34
|
+
/**
|
|
35
|
+
* Sanitize a CSS font-family fallback name.
|
|
36
|
+
*
|
|
37
|
+
* Generic family names (sans-serif, serif, monospace, etc.) are used as-is.
|
|
38
|
+
* Named families are wrapped in escaped quotes. This prevents injection via
|
|
39
|
+
* crafted fallback values like `); } body { color: red; } .x {`.
|
|
40
|
+
*/
|
|
41
|
+
declare function sanitizeFallback(name: string): string;
|
|
42
|
+
declare function singleFontOptionValue(value: string | string[] | undefined): string | undefined;
|
|
43
|
+
declare function sanitizeFontDescriptorValue(value: string): string | undefined;
|
|
44
|
+
declare function resolveFontWeight(weight: string | string[] | undefined): number | undefined;
|
|
45
|
+
declare function resolveFontStyle(style: string | string[] | undefined): string | undefined;
|
|
46
|
+
declare function resolveGoogleFontStyle(style: string | string[] | undefined): string | undefined;
|
|
47
|
+
declare function resolveSingleFaceStyle(input: FontFaceStyleInput): FontStyle;
|
|
48
|
+
declare function formatFontClassRule(className: string, style: FontStyle): string;
|
|
49
|
+
/**
|
|
50
|
+
* Determine the MIME type for a font file based on its extension.
|
|
51
|
+
* Uses endsWith() only to avoid false positives from substring matches
|
|
52
|
+
* (e.g. ".woff" matching ".woff2").
|
|
53
|
+
*/
|
|
54
|
+
declare function getFontMimeType(pathOrUrl: string): string;
|
|
55
|
+
//#endregion
|
|
56
|
+
export { FontFaceStyleInput, FontStyle, escapeCSSString, formatFontClassRule, getFontMimeType, resolveFontStyle, resolveFontWeight, resolveGoogleFontStyle, resolveSingleFaceStyle, sanitizeCSSVarName, sanitizeFallback, sanitizeFontDescriptorValue, singleFontOptionValue };
|