@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,582 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useMergedRef } from "./use-merged-ref.js";
|
|
3
|
+
import { hasRemoteMatch, isPrivateIp } from "./image-config.js";
|
|
4
|
+
import { forwardRef, useEffect, useLayoutEffect, useRef, useState } from "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import * as ReactDOM from "react-dom";
|
|
7
|
+
import { Image as Image$1 } from "@unpic/react";
|
|
8
|
+
//#region src/shims/image.tsx
|
|
9
|
+
/**
|
|
10
|
+
* next/image shim
|
|
11
|
+
*
|
|
12
|
+
* Translates Next.js Image props to @unpic/react Image component.
|
|
13
|
+
* @unpic/react auto-detects CDN from URL and uses native transforms.
|
|
14
|
+
* For local images (relative paths), routes through `/_next/image`
|
|
15
|
+
* for server-side optimization (resize, format negotiation, quality).
|
|
16
|
+
*
|
|
17
|
+
* Remote images are validated against `images.remotePatterns` and
|
|
18
|
+
* `images.domains` from next.config.js. Unmatched URLs are blocked
|
|
19
|
+
* in production and warn in development, matching Next.js behavior.
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Image config injected at build time via Vite define.
|
|
23
|
+
* Serialized as JSON — parsed once at module level.
|
|
24
|
+
*/
|
|
25
|
+
const __imageRemotePatterns = (() => {
|
|
26
|
+
try {
|
|
27
|
+
return JSON.parse(process.env.__VINEXT_IMAGE_REMOTE_PATTERNS ?? "[]");
|
|
28
|
+
} catch {
|
|
29
|
+
return [];
|
|
30
|
+
}
|
|
31
|
+
})();
|
|
32
|
+
const __imageDomains = (() => {
|
|
33
|
+
try {
|
|
34
|
+
return JSON.parse(process.env.__VINEXT_IMAGE_DOMAINS ?? "[]");
|
|
35
|
+
} catch {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
})();
|
|
39
|
+
const __hasImageConfig = __imageRemotePatterns.length > 0 || __imageDomains.length > 0;
|
|
40
|
+
const __isDev = process.env.NODE_ENV !== "production";
|
|
41
|
+
const __imageDeviceSizes = (() => {
|
|
42
|
+
try {
|
|
43
|
+
return JSON.parse(process.env.__VINEXT_IMAGE_DEVICE_SIZES ?? "[640,750,828,1080,1200,1920,2048,3840]");
|
|
44
|
+
} catch {
|
|
45
|
+
return [
|
|
46
|
+
640,
|
|
47
|
+
750,
|
|
48
|
+
828,
|
|
49
|
+
1080,
|
|
50
|
+
1200,
|
|
51
|
+
1920,
|
|
52
|
+
2048,
|
|
53
|
+
3840
|
|
54
|
+
];
|
|
55
|
+
}
|
|
56
|
+
})();
|
|
57
|
+
/**
|
|
58
|
+
* Whether dangerouslyAllowSVG is enabled in next.config.js.
|
|
59
|
+
* When false (default), .svg sources auto-skip the optimization endpoint
|
|
60
|
+
* and are served directly, matching Next.js behavior.
|
|
61
|
+
* When true, .svg sources are routed through the optimizer (served as-is
|
|
62
|
+
* with security headers).
|
|
63
|
+
*/
|
|
64
|
+
const __dangerouslyAllowSVG = process.env.__VINEXT_IMAGE_DANGEROUSLY_ALLOW_SVG === "true";
|
|
65
|
+
/**
|
|
66
|
+
* Whether dangerouslyAllowLocalIP is enabled in next.config.js.
|
|
67
|
+
* When false (default), remote image URLs with literal private-IP hostnames
|
|
68
|
+
* are blocked to mitigate SSRF risk.
|
|
69
|
+
*/
|
|
70
|
+
const __dangerouslyAllowLocalIP = process.env.__VINEXT_IMAGE_DANGEROUSLY_ALLOW_LOCAL_IP === "true";
|
|
71
|
+
/**
|
|
72
|
+
* Validate that a remote URL is allowed by the configured remote patterns.
|
|
73
|
+
* Returns true if the URL is allowed, false otherwise.
|
|
74
|
+
*
|
|
75
|
+
* When no remotePatterns/domains are configured, all remote URLs are allowed
|
|
76
|
+
* (backwards-compatible — user hasn't opted into restriction).
|
|
77
|
+
*
|
|
78
|
+
* When patterns ARE configured, only matching URLs are allowed.
|
|
79
|
+
* In development, non-matching URLs produce a console warning.
|
|
80
|
+
* In production, non-matching URLs are blocked (src replaced with empty string).
|
|
81
|
+
*
|
|
82
|
+
* Private-IP hostnames are additionally rejected unless dangerouslyAllowLocalIP
|
|
83
|
+
* is set, mirroring Next.js's fetchExternalImage guard.
|
|
84
|
+
*/
|
|
85
|
+
function validateRemoteUrl(src) {
|
|
86
|
+
let url;
|
|
87
|
+
try {
|
|
88
|
+
url = new URL(src, "http://n");
|
|
89
|
+
} catch {
|
|
90
|
+
return {
|
|
91
|
+
allowed: false,
|
|
92
|
+
reason: `Invalid URL: ${src}`
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
if (!__dangerouslyAllowLocalIP && isPrivateIp(url.hostname)) return {
|
|
96
|
+
allowed: false,
|
|
97
|
+
reason: `Image URL "${src}" resolved to private IP. If this is expected and you understand SSRF risk, use images.dangerouslyAllowLocalIP = true to continue.`
|
|
98
|
+
};
|
|
99
|
+
if (!__hasImageConfig) return { allowed: true };
|
|
100
|
+
if (hasRemoteMatch(__imageDomains, __imageRemotePatterns, url)) return { allowed: true };
|
|
101
|
+
return {
|
|
102
|
+
allowed: false,
|
|
103
|
+
reason: `Image URL "${src}" is not configured in images.remotePatterns or images.domains in next.config.js. See: https://nextjs.org/docs/messages/next-image-unconfigured-host`
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* A version of useLayoutEffect that doesn't warn during SSR.
|
|
108
|
+
* Do not rename this to "isomorphic layout effect". There is no such thing as
|
|
109
|
+
* an isomorphic Layout Effect since there is no Layout on the server.
|
|
110
|
+
* Ported from Next.js: https://github.com/vercel/next.js/pull/93209
|
|
111
|
+
*/
|
|
112
|
+
const useNonWarningLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
|
|
113
|
+
/**
|
|
114
|
+
* Create a synthetic React load event for replaying onLoad/onLoadingComplete
|
|
115
|
+
* during hydration when the image already completed loading.
|
|
116
|
+
*
|
|
117
|
+
* This function creates a native Event("load") via the DOM Event constructor
|
|
118
|
+
* and must only be called in a browser context (client-side layout effect).
|
|
119
|
+
* It mirrors the pattern used in Next.js `handleLoading`.
|
|
120
|
+
*/
|
|
121
|
+
function createSyntheticLoadEvent(img) {
|
|
122
|
+
const nativeEvent = new Event("load");
|
|
123
|
+
Object.defineProperty(nativeEvent, "target", {
|
|
124
|
+
writable: false,
|
|
125
|
+
value: img
|
|
126
|
+
});
|
|
127
|
+
let prevented = false;
|
|
128
|
+
let stopped = false;
|
|
129
|
+
return {
|
|
130
|
+
bubbles: nativeEvent.bubbles,
|
|
131
|
+
cancelable: nativeEvent.cancelable,
|
|
132
|
+
currentTarget: img,
|
|
133
|
+
defaultPrevented: false,
|
|
134
|
+
eventPhase: nativeEvent.eventPhase,
|
|
135
|
+
isTrusted: false,
|
|
136
|
+
nativeEvent,
|
|
137
|
+
target: img,
|
|
138
|
+
timeStamp: nativeEvent.timeStamp,
|
|
139
|
+
type: "load",
|
|
140
|
+
isDefaultPrevented: () => prevented,
|
|
141
|
+
isPropagationStopped: () => stopped,
|
|
142
|
+
persist: () => {},
|
|
143
|
+
preventDefault: () => {
|
|
144
|
+
prevented = true;
|
|
145
|
+
nativeEvent.preventDefault();
|
|
146
|
+
},
|
|
147
|
+
stopPropagation: () => {
|
|
148
|
+
stopped = true;
|
|
149
|
+
nativeEvent.stopPropagation();
|
|
150
|
+
}
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Sanitize a blurDataURL to prevent CSS injection.
|
|
155
|
+
*
|
|
156
|
+
* A crafted data URL containing `)` can break out of the `url()` CSS function,
|
|
157
|
+
* allowing injection of arbitrary CSS properties or rules. Characters like `{`,
|
|
158
|
+
* `}`, and `\` can also assist in crafting injection payloads.
|
|
159
|
+
*
|
|
160
|
+
* This validates the URL starts with `data:image/` and rejects characters that
|
|
161
|
+
* could escape the `url()` context. Semicolons are allowed since they're part
|
|
162
|
+
* of valid data URLs (`data:image/png;base64,...`) and harmless inside `url()`.
|
|
163
|
+
*
|
|
164
|
+
* Returns undefined for invalid URLs, which causes the blur placeholder to be
|
|
165
|
+
* skipped gracefully.
|
|
166
|
+
*/
|
|
167
|
+
function sanitizeBlurDataURL(url) {
|
|
168
|
+
if (!url.startsWith("data:image/")) return void 0;
|
|
169
|
+
if (/[)(}{\\'"\n\r]/.test(url)) return void 0;
|
|
170
|
+
return url;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Determine if a src is a remote URL (CDN-optimizable) or local.
|
|
174
|
+
*/
|
|
175
|
+
function isRemoteUrl(src) {
|
|
176
|
+
return src.startsWith("http://") || src.startsWith("https://") || src.startsWith("//");
|
|
177
|
+
}
|
|
178
|
+
function isSvgUrl(src) {
|
|
179
|
+
try {
|
|
180
|
+
return new URL(src, "http://vinext.local").pathname.toLowerCase().endsWith(".svg");
|
|
181
|
+
} catch {
|
|
182
|
+
return false;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
function getFillStyle(style, backgroundStyle) {
|
|
186
|
+
return {
|
|
187
|
+
position: "absolute",
|
|
188
|
+
inset: 0,
|
|
189
|
+
width: "100%",
|
|
190
|
+
height: "100%",
|
|
191
|
+
objectFit: "cover",
|
|
192
|
+
...backgroundStyle,
|
|
193
|
+
...style
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
/**
|
|
197
|
+
* Resolve src, width, height, blurDataURL from Image props (string or StaticImageData).
|
|
198
|
+
* Shared by the Image component and getImageProps to keep behavior in sync.
|
|
199
|
+
*/
|
|
200
|
+
function resolveImageSource(v) {
|
|
201
|
+
return {
|
|
202
|
+
src: typeof v.src === "string" ? v.src : v.src.src,
|
|
203
|
+
width: v.width ?? (typeof v.src === "object" ? v.src.width : void 0),
|
|
204
|
+
height: v.height ?? (typeof v.src === "object" ? v.src.height : void 0),
|
|
205
|
+
blurDataURL: v.blurDataURL ?? (typeof v.src === "object" ? v.src.blurDataURL : void 0)
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
/**
|
|
209
|
+
* Responsive image widths matching Next.js's device sizes config.
|
|
210
|
+
* These are the breakpoints used for srcSet generation.
|
|
211
|
+
* Configurable via `images.deviceSizes` in next.config.js.
|
|
212
|
+
*/
|
|
213
|
+
const RESPONSIVE_WIDTHS = __imageDeviceSizes;
|
|
214
|
+
/**
|
|
215
|
+
* Build a `/_next/image` optimization URL.
|
|
216
|
+
*
|
|
217
|
+
* In production (Cloudflare Workers), the worker intercepts this path and uses
|
|
218
|
+
* the Images binding to resize/transcode on the fly. In dev, the Vite dev
|
|
219
|
+
* server handles it as a passthrough (serves the original file).
|
|
220
|
+
*/
|
|
221
|
+
function imageOptimizationUrl(src, width, quality = 75) {
|
|
222
|
+
return `/_next/image?url=${encodeURIComponent(src)}&w=${width}&q=${quality}`;
|
|
223
|
+
}
|
|
224
|
+
function preloadImageResource(input) {
|
|
225
|
+
if (!input.shouldPreload) return;
|
|
226
|
+
if (typeof ReactDOM.preload !== "function") return;
|
|
227
|
+
ReactDOM.preload(input.src, {
|
|
228
|
+
as: "image",
|
|
229
|
+
imageSrcSet: input.srcSet,
|
|
230
|
+
imageSizes: input.sizes,
|
|
231
|
+
fetchPriority: input.fetchPriority
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
/**
|
|
235
|
+
* Generate a srcSet string for responsive images.
|
|
236
|
+
*
|
|
237
|
+
* Each width points to the `/_next/image` optimization endpoint so the
|
|
238
|
+
* server can resize and transcode the image. Only includes widths that are
|
|
239
|
+
* <= 2x the original image width to avoid pointless upscaling.
|
|
240
|
+
*/
|
|
241
|
+
function generateSrcSet(src, originalWidth, quality = 75) {
|
|
242
|
+
const widths = RESPONSIVE_WIDTHS.filter((w) => w <= originalWidth * 2);
|
|
243
|
+
if (widths.length === 0) return `${imageOptimizationUrl(src, originalWidth, quality)} ${originalWidth}w`;
|
|
244
|
+
return widths.map((w) => `${imageOptimizationUrl(src, w, quality)} ${w}w`).join(", ");
|
|
245
|
+
}
|
|
246
|
+
const Image = forwardRef(function Image({ src: srcProp, alt, width, height, fill, preload, priority, quality, placeholder, blurDataURL, loader, sizes, className, style, onLoad, onLoadingComplete, onError, unoptimized: _unoptimized, overrideSrc, loading, ...rest }, ref) {
|
|
247
|
+
const lastLoadedSrcRef = useRef(void 0);
|
|
248
|
+
const lastErrorSrcRef = useRef(void 0);
|
|
249
|
+
const didInsertRef = useRef(false);
|
|
250
|
+
const imgElementRef = useRef(null);
|
|
251
|
+
const mergedRef = useMergedRef(ref, imgElementRef);
|
|
252
|
+
const onLoadRef = useRef(onLoad);
|
|
253
|
+
useEffect(() => {
|
|
254
|
+
onLoadRef.current = onLoad;
|
|
255
|
+
}, [onLoad]);
|
|
256
|
+
const onErrorRef = useRef(onError);
|
|
257
|
+
useEffect(() => {
|
|
258
|
+
onErrorRef.current = onError;
|
|
259
|
+
}, [onError]);
|
|
260
|
+
const onLoadingCompleteRef = useRef(onLoadingComplete);
|
|
261
|
+
useEffect(() => {
|
|
262
|
+
onLoadingCompleteRef.current = onLoadingComplete;
|
|
263
|
+
}, [onLoadingComplete]);
|
|
264
|
+
const { src, width: imgWidth, height: imgHeight, blurDataURL: imgBlurDataURL } = resolveImageSource({
|
|
265
|
+
src: srcProp,
|
|
266
|
+
width,
|
|
267
|
+
height,
|
|
268
|
+
blurDataURL
|
|
269
|
+
});
|
|
270
|
+
const shouldPreload = preload === true || priority === true;
|
|
271
|
+
const priorityFetchPriority = priority ? "high" : void 0;
|
|
272
|
+
const imageLoading = priority ? "eager" : shouldPreload ? loading : loading ?? "lazy";
|
|
273
|
+
const [completedBlurSrc, setCompletedBlurSrc] = useState(void 0);
|
|
274
|
+
const blurComplete = completedBlurSrc === src;
|
|
275
|
+
const markBlurComplete = () => {
|
|
276
|
+
if (placeholder !== "blur") return;
|
|
277
|
+
setCompletedBlurSrc((current) => current === src ? current : src);
|
|
278
|
+
};
|
|
279
|
+
useNonWarningLayoutEffect(() => {
|
|
280
|
+
if (!didInsertRef.current && imgElementRef.current !== null) {
|
|
281
|
+
const img = imgElementRef.current;
|
|
282
|
+
if (onErrorRef.current) img.src = img.src;
|
|
283
|
+
if (img.complete && img.naturalWidth > 0) {
|
|
284
|
+
markBlurComplete();
|
|
285
|
+
const currentOnLoad = onLoadRef.current;
|
|
286
|
+
const currentOnLoadingComplete = onLoadingCompleteRef.current;
|
|
287
|
+
if (currentOnLoad || currentOnLoadingComplete) {
|
|
288
|
+
if (lastLoadedSrcRef.current !== src) {
|
|
289
|
+
lastLoadedSrcRef.current = src;
|
|
290
|
+
const syntheticEvent = createSyntheticLoadEvent(img);
|
|
291
|
+
currentOnLoad?.(syntheticEvent);
|
|
292
|
+
currentOnLoadingComplete?.(img);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
didInsertRef.current = true;
|
|
297
|
+
}
|
|
298
|
+
}, [
|
|
299
|
+
placeholder,
|
|
300
|
+
sizes,
|
|
301
|
+
_unoptimized
|
|
302
|
+
]);
|
|
303
|
+
const handleLoad = onLoadingComplete ? (e) => {
|
|
304
|
+
if (lastLoadedSrcRef.current === src) return;
|
|
305
|
+
lastLoadedSrcRef.current = src;
|
|
306
|
+
markBlurComplete();
|
|
307
|
+
onLoad?.(e);
|
|
308
|
+
onLoadingComplete(e.currentTarget);
|
|
309
|
+
} : onLoad ? (e) => {
|
|
310
|
+
if (lastLoadedSrcRef.current === src) return;
|
|
311
|
+
lastLoadedSrcRef.current = src;
|
|
312
|
+
markBlurComplete();
|
|
313
|
+
onLoad(e);
|
|
314
|
+
} : placeholder === "blur" ? () => {
|
|
315
|
+
if (lastLoadedSrcRef.current === src) return;
|
|
316
|
+
lastLoadedSrcRef.current = src;
|
|
317
|
+
markBlurComplete();
|
|
318
|
+
} : void 0;
|
|
319
|
+
const handleError = onError ? (e) => {
|
|
320
|
+
if (lastErrorSrcRef.current === src) return;
|
|
321
|
+
lastErrorSrcRef.current = src;
|
|
322
|
+
markBlurComplete();
|
|
323
|
+
onError(e);
|
|
324
|
+
} : placeholder === "blur" ? () => {
|
|
325
|
+
if (lastErrorSrcRef.current === src) return;
|
|
326
|
+
lastErrorSrcRef.current = src;
|
|
327
|
+
markBlurComplete();
|
|
328
|
+
} : void 0;
|
|
329
|
+
if (_unoptimized === true) {
|
|
330
|
+
const renderedSrc = overrideSrc || src;
|
|
331
|
+
const sanitizedBlur = imgBlurDataURL ? sanitizeBlurDataURL(imgBlurDataURL) : void 0;
|
|
332
|
+
const blurStyle = !blurComplete && placeholder === "blur" && sanitizedBlur ? {
|
|
333
|
+
backgroundImage: `url(${sanitizedBlur})`,
|
|
334
|
+
backgroundSize: "cover",
|
|
335
|
+
backgroundRepeat: "no-repeat",
|
|
336
|
+
backgroundPosition: "center"
|
|
337
|
+
} : void 0;
|
|
338
|
+
preloadImageResource({
|
|
339
|
+
shouldPreload,
|
|
340
|
+
src: renderedSrc,
|
|
341
|
+
fetchPriority: priorityFetchPriority
|
|
342
|
+
});
|
|
343
|
+
return /* @__PURE__ */ jsx("img", {
|
|
344
|
+
ref: mergedRef,
|
|
345
|
+
src: renderedSrc,
|
|
346
|
+
alt,
|
|
347
|
+
width: fill ? void 0 : imgWidth,
|
|
348
|
+
height: fill ? void 0 : imgHeight,
|
|
349
|
+
loading: imageLoading,
|
|
350
|
+
fetchPriority: priorityFetchPriority,
|
|
351
|
+
decoding: "async",
|
|
352
|
+
className,
|
|
353
|
+
"data-nimg": fill ? "fill" : "1",
|
|
354
|
+
onLoad: handleLoad,
|
|
355
|
+
onError: handleError,
|
|
356
|
+
style: fill ? getFillStyle(style, blurStyle) : {
|
|
357
|
+
...blurStyle,
|
|
358
|
+
...style
|
|
359
|
+
},
|
|
360
|
+
...rest
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
if (loader) {
|
|
364
|
+
const resolvedSrc = loader({
|
|
365
|
+
src,
|
|
366
|
+
width: imgWidth ?? 0,
|
|
367
|
+
quality: quality ?? 75
|
|
368
|
+
});
|
|
369
|
+
preloadImageResource({
|
|
370
|
+
shouldPreload,
|
|
371
|
+
src: resolvedSrc,
|
|
372
|
+
sizes,
|
|
373
|
+
fetchPriority: priorityFetchPriority
|
|
374
|
+
});
|
|
375
|
+
return /* @__PURE__ */ jsx("img", {
|
|
376
|
+
ref: mergedRef,
|
|
377
|
+
src: resolvedSrc,
|
|
378
|
+
alt,
|
|
379
|
+
width: fill ? void 0 : imgWidth,
|
|
380
|
+
height: fill ? void 0 : imgHeight,
|
|
381
|
+
loading: imageLoading,
|
|
382
|
+
decoding: "async",
|
|
383
|
+
sizes,
|
|
384
|
+
className,
|
|
385
|
+
onLoad: handleLoad,
|
|
386
|
+
onError: handleError,
|
|
387
|
+
style: fill ? getFillStyle(style) : style,
|
|
388
|
+
...rest
|
|
389
|
+
});
|
|
390
|
+
}
|
|
391
|
+
if (isRemoteUrl(src)) {
|
|
392
|
+
const validation = validateRemoteUrl(src);
|
|
393
|
+
if (!validation.allowed) if (__isDev) console.warn(`[next/image] ${validation.reason}`);
|
|
394
|
+
else {
|
|
395
|
+
console.error(`[next/image] ${validation.reason}`);
|
|
396
|
+
return null;
|
|
397
|
+
}
|
|
398
|
+
const sanitizedBlur = imgBlurDataURL ? sanitizeBlurDataURL(imgBlurDataURL) : void 0;
|
|
399
|
+
const showBlur = !blurComplete && placeholder === "blur" && sanitizedBlur;
|
|
400
|
+
const blurStyle = showBlur ? {
|
|
401
|
+
backgroundImage: `url(${sanitizedBlur})`,
|
|
402
|
+
backgroundSize: "cover",
|
|
403
|
+
backgroundRepeat: "no-repeat",
|
|
404
|
+
backgroundPosition: "center"
|
|
405
|
+
} : void 0;
|
|
406
|
+
const bg = showBlur ? `url(${sanitizedBlur})` : void 0;
|
|
407
|
+
if (fill) {
|
|
408
|
+
const imageSizes = sizes ?? "100vw";
|
|
409
|
+
preloadImageResource({
|
|
410
|
+
shouldPreload,
|
|
411
|
+
src,
|
|
412
|
+
sizes: imageSizes,
|
|
413
|
+
fetchPriority: priorityFetchPriority
|
|
414
|
+
});
|
|
415
|
+
return /* @__PURE__ */ jsx("img", {
|
|
416
|
+
ref: mergedRef,
|
|
417
|
+
src,
|
|
418
|
+
alt,
|
|
419
|
+
loading: imageLoading,
|
|
420
|
+
fetchPriority: priorityFetchPriority,
|
|
421
|
+
decoding: "async",
|
|
422
|
+
sizes: imageSizes,
|
|
423
|
+
className,
|
|
424
|
+
"data-nimg": "fill",
|
|
425
|
+
onLoad: handleLoad,
|
|
426
|
+
onError: handleError,
|
|
427
|
+
style: getFillStyle(style, blurStyle),
|
|
428
|
+
...rest
|
|
429
|
+
});
|
|
430
|
+
}
|
|
431
|
+
if (imgWidth && imgHeight) {
|
|
432
|
+
const unpicRuntimeStyleProps = { style };
|
|
433
|
+
preloadImageResource({
|
|
434
|
+
shouldPreload,
|
|
435
|
+
src,
|
|
436
|
+
sizes,
|
|
437
|
+
fetchPriority: priorityFetchPriority
|
|
438
|
+
});
|
|
439
|
+
return /* @__PURE__ */ jsx(Image$1, {
|
|
440
|
+
src,
|
|
441
|
+
alt,
|
|
442
|
+
width: imgWidth,
|
|
443
|
+
height: imgHeight,
|
|
444
|
+
layout: "constrained",
|
|
445
|
+
loading: imageLoading,
|
|
446
|
+
fetchPriority: priorityFetchPriority,
|
|
447
|
+
sizes,
|
|
448
|
+
className,
|
|
449
|
+
...unpicRuntimeStyleProps,
|
|
450
|
+
background: bg,
|
|
451
|
+
onLoad: handleLoad,
|
|
452
|
+
onError: handleError,
|
|
453
|
+
ref: mergedRef
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
}
|
|
457
|
+
const imgQuality = quality ?? 75;
|
|
458
|
+
const skipOptimization = isSvgUrl(src) && !__dangerouslyAllowSVG;
|
|
459
|
+
const srcSet = imgWidth && !fill && !skipOptimization ? generateSrcSet(src, imgWidth, imgQuality) : imgWidth && !fill ? RESPONSIVE_WIDTHS.filter((w) => w <= imgWidth * 2).map((w) => `${src} ${w}w`).join(", ") || `${src} ${imgWidth}w` : void 0;
|
|
460
|
+
const optimizedSrc = skipOptimization ? src : imgWidth ? imageOptimizationUrl(src, imgWidth, imgQuality) : imageOptimizationUrl(src, RESPONSIVE_WIDTHS[0], imgQuality);
|
|
461
|
+
const sanitizedLocalBlur = imgBlurDataURL ? sanitizeBlurDataURL(imgBlurDataURL) : void 0;
|
|
462
|
+
const blurStyle = !blurComplete && placeholder === "blur" && sanitizedLocalBlur ? {
|
|
463
|
+
backgroundImage: `url(${sanitizedLocalBlur})`,
|
|
464
|
+
backgroundSize: "cover",
|
|
465
|
+
backgroundRepeat: "no-repeat",
|
|
466
|
+
backgroundPosition: "center"
|
|
467
|
+
} : void 0;
|
|
468
|
+
const imageSizes = sizes ?? (fill ? "100vw" : void 0);
|
|
469
|
+
preloadImageResource({
|
|
470
|
+
shouldPreload,
|
|
471
|
+
src: optimizedSrc,
|
|
472
|
+
srcSet,
|
|
473
|
+
sizes: imageSizes,
|
|
474
|
+
fetchPriority: priorityFetchPriority
|
|
475
|
+
});
|
|
476
|
+
return /* @__PURE__ */ jsx("img", {
|
|
477
|
+
ref: mergedRef,
|
|
478
|
+
src: optimizedSrc,
|
|
479
|
+
alt,
|
|
480
|
+
width: fill ? void 0 : imgWidth,
|
|
481
|
+
height: fill ? void 0 : imgHeight,
|
|
482
|
+
loading: imageLoading,
|
|
483
|
+
fetchPriority: priorityFetchPriority,
|
|
484
|
+
decoding: "async",
|
|
485
|
+
srcSet,
|
|
486
|
+
sizes: imageSizes,
|
|
487
|
+
className,
|
|
488
|
+
"data-nimg": fill ? "fill" : "1",
|
|
489
|
+
onLoad: handleLoad,
|
|
490
|
+
onError: handleError,
|
|
491
|
+
style: fill ? getFillStyle(style, blurStyle) : {
|
|
492
|
+
...blurStyle,
|
|
493
|
+
...style
|
|
494
|
+
},
|
|
495
|
+
...rest
|
|
496
|
+
});
|
|
497
|
+
});
|
|
498
|
+
/**
|
|
499
|
+
* getImageProps — for advanced use cases (picture elements, background images).
|
|
500
|
+
* Returns the props that would be passed to the underlying <img> element.
|
|
501
|
+
*/
|
|
502
|
+
function getImageProps(props) {
|
|
503
|
+
const { src: srcProp, alt, width, height, fill, preload: _preload, priority, quality: _quality, placeholder, blurDataURL: blurDataURLProp, loader, sizes, className, style, onLoad: _onLoad, onLoadingComplete: _onLoadingComplete, unoptimized: _unoptimized, overrideSrc, loading, ...rest } = props;
|
|
504
|
+
const { src, width: imgWidth, height: imgHeight, blurDataURL: imgBlurDataURL } = resolveImageSource({
|
|
505
|
+
src: srcProp,
|
|
506
|
+
width,
|
|
507
|
+
height,
|
|
508
|
+
blurDataURL: blurDataURLProp
|
|
509
|
+
});
|
|
510
|
+
const shouldPreload = _preload === true || priority === true;
|
|
511
|
+
if (_unoptimized === true) {
|
|
512
|
+
const renderedSrc = overrideSrc || src;
|
|
513
|
+
const sanitizedBlurURL = imgBlurDataURL ? sanitizeBlurDataURL(imgBlurDataURL) : void 0;
|
|
514
|
+
const blurStyle = placeholder === "blur" && sanitizedBlurURL ? {
|
|
515
|
+
backgroundImage: `url(${sanitizedBlurURL})`,
|
|
516
|
+
backgroundSize: "cover",
|
|
517
|
+
backgroundRepeat: "no-repeat",
|
|
518
|
+
backgroundPosition: "center"
|
|
519
|
+
} : void 0;
|
|
520
|
+
return { props: {
|
|
521
|
+
src: renderedSrc,
|
|
522
|
+
alt,
|
|
523
|
+
width: fill ? void 0 : imgWidth,
|
|
524
|
+
height: fill ? void 0 : imgHeight,
|
|
525
|
+
loading: priority ? "eager" : shouldPreload ? loading : loading ?? "lazy",
|
|
526
|
+
fetchPriority: priority ? "high" : void 0,
|
|
527
|
+
decoding: "async",
|
|
528
|
+
className,
|
|
529
|
+
"data-nimg": fill ? "fill" : "1",
|
|
530
|
+
style: fill ? getFillStyle(style, blurStyle) : {
|
|
531
|
+
...blurStyle,
|
|
532
|
+
...style
|
|
533
|
+
},
|
|
534
|
+
...rest
|
|
535
|
+
} };
|
|
536
|
+
}
|
|
537
|
+
let blockedInProd = false;
|
|
538
|
+
if (isRemoteUrl(src)) {
|
|
539
|
+
const validation = validateRemoteUrl(src);
|
|
540
|
+
if (!validation.allowed) if (__isDev) console.warn(`[next/image] ${validation.reason}`);
|
|
541
|
+
else {
|
|
542
|
+
console.error(`[next/image] ${validation.reason}`);
|
|
543
|
+
blockedInProd = true;
|
|
544
|
+
}
|
|
545
|
+
}
|
|
546
|
+
const imgQuality = _quality ?? 75;
|
|
547
|
+
const resolvedSrc = blockedInProd ? "" : loader ? loader({
|
|
548
|
+
src,
|
|
549
|
+
width: imgWidth ?? 0,
|
|
550
|
+
quality: imgQuality
|
|
551
|
+
}) : src;
|
|
552
|
+
const skipOpt = isSvgUrl(resolvedSrc) && !__dangerouslyAllowSVG || blockedInProd || !!loader || isRemoteUrl(resolvedSrc);
|
|
553
|
+
const optimizedSrc = skipOpt ? resolvedSrc : imgWidth ? imageOptimizationUrl(resolvedSrc, imgWidth, imgQuality) : imageOptimizationUrl(resolvedSrc, RESPONSIVE_WIDTHS[0], imgQuality);
|
|
554
|
+
const srcSet = imgWidth && !fill && !isRemoteUrl(resolvedSrc) && !loader && !skipOpt ? generateSrcSet(resolvedSrc, imgWidth, imgQuality) : void 0;
|
|
555
|
+
const sanitizedBlurURL = imgBlurDataURL ? sanitizeBlurDataURL(imgBlurDataURL) : void 0;
|
|
556
|
+
const blurStyle = placeholder === "blur" && sanitizedBlurURL ? {
|
|
557
|
+
backgroundImage: `url(${sanitizedBlurURL})`,
|
|
558
|
+
backgroundSize: "cover",
|
|
559
|
+
backgroundRepeat: "no-repeat",
|
|
560
|
+
backgroundPosition: "center"
|
|
561
|
+
} : void 0;
|
|
562
|
+
return { props: {
|
|
563
|
+
src: optimizedSrc,
|
|
564
|
+
alt,
|
|
565
|
+
width: fill ? void 0 : imgWidth,
|
|
566
|
+
height: fill ? void 0 : imgHeight,
|
|
567
|
+
loading: priority ? "eager" : shouldPreload ? loading : loading ?? "lazy",
|
|
568
|
+
fetchPriority: priority ? "high" : void 0,
|
|
569
|
+
decoding: "async",
|
|
570
|
+
srcSet,
|
|
571
|
+
sizes: sizes ?? (fill ? "100vw" : void 0),
|
|
572
|
+
className,
|
|
573
|
+
"data-nimg": fill ? "fill" : "1",
|
|
574
|
+
style: fill ? getFillStyle(style, blurStyle) : {
|
|
575
|
+
...blurStyle,
|
|
576
|
+
...style
|
|
577
|
+
},
|
|
578
|
+
...rest
|
|
579
|
+
} };
|
|
580
|
+
}
|
|
581
|
+
//#endregion
|
|
582
|
+
export { Image as default, getImageProps, imageOptimizationUrl };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
|
|
3
|
+
//#region src/shims/internal/als-registry.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Get (or lazily create) the AsyncLocalStorage registered on `globalThis`
|
|
6
|
+
* under `Symbol.for(key)`. Multiple callers — including callers in different
|
|
7
|
+
* module instances — that pass the same `key` receive the same ALS instance.
|
|
8
|
+
*
|
|
9
|
+
* @param key - String key fed to `Symbol.for(...)`. By convention vinext
|
|
10
|
+
* shims use a dotted namespace such as `"vinext.cache.als"`.
|
|
11
|
+
*/
|
|
12
|
+
declare function getOrCreateAls<T>(key: string): AsyncLocalStorage<T>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { getOrCreateAls };
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { AsyncLocalStorage } from "node:async_hooks";
|
|
2
|
+
//#region src/shims/internal/als-registry.ts
|
|
3
|
+
/**
|
|
4
|
+
* Shared helper for registering AsyncLocalStorage instances on `globalThis`
|
|
5
|
+
* via `Symbol.for(...)` so that they survive multiple module instances.
|
|
6
|
+
*
|
|
7
|
+
* Why this helper exists
|
|
8
|
+
* ----------------------
|
|
9
|
+
* Vite's multi-environment setup (RSC / SSR / client) and HMR can load a
|
|
10
|
+
* single source module under several different specifiers, producing more
|
|
11
|
+
* than one module instance at runtime. If each instance kept its own
|
|
12
|
+
* module-local `new AsyncLocalStorage()`, request-scoped state would silently
|
|
13
|
+
* fork across instances — `headers()` in one environment wouldn't see what
|
|
14
|
+
* `connection()` registered in another, concurrent requests would stomp each
|
|
15
|
+
* other, etc.
|
|
16
|
+
*
|
|
17
|
+
* The fix every shim was applying inline:
|
|
18
|
+
*
|
|
19
|
+
* const _ALS_KEY = Symbol.for("vinext.foo.als");
|
|
20
|
+
* const _g = globalThis as unknown as Record<PropertyKey, unknown>;
|
|
21
|
+
* const _als = (_g[_ALS_KEY] ??=
|
|
22
|
+
* new AsyncLocalStorage<T>()) as AsyncLocalStorage<T>;
|
|
23
|
+
*
|
|
24
|
+
* This helper packages that pattern.
|
|
25
|
+
*
|
|
26
|
+
* Cross-bundle singleton property — preserved
|
|
27
|
+
* -------------------------------------------
|
|
28
|
+
* - `Symbol.for(key)` consults the global symbol registry and returns the
|
|
29
|
+
* same symbol regardless of which module instance calls it.
|
|
30
|
+
* - `globalThis[sym]` is a single slot shared by every module instance.
|
|
31
|
+
* - `??=` only assigns when the slot is empty, so the first caller wins and
|
|
32
|
+
* every subsequent caller (in any module instance) reads the same ALS.
|
|
33
|
+
*
|
|
34
|
+
* The helper module itself never holds the ALS by reference — it always
|
|
35
|
+
* round-trips through `globalThis`. So even if this helper file is itself
|
|
36
|
+
* loaded under multiple module instances, every copy still hands back the
|
|
37
|
+
* one true ALS for a given key.
|
|
38
|
+
*/
|
|
39
|
+
const _g = globalThis;
|
|
40
|
+
/**
|
|
41
|
+
* No-op AsyncLocalStorage used when the runtime does not provide a usable
|
|
42
|
+
* `AsyncLocalStorage` constructor.
|
|
43
|
+
*
|
|
44
|
+
* In browser/client bundles `node:async_hooks` can resolve to a stub without a
|
|
45
|
+
* usable constructor (e.g. Vite's `__vite-browser-external`). Constructing such
|
|
46
|
+
* a value with `new` throws `TypeError: AsyncLocalStorage is not a constructor`
|
|
47
|
+
* at module-eval time, crashing every client-reachable shim that calls
|
|
48
|
+
* `getOrCreateAls` on import (request-context, headers, cache, …).
|
|
49
|
+
*
|
|
50
|
+
* Mirrors Next.js' `FakeAsyncLocalStorage` (and this repo's
|
|
51
|
+
* `async-hooks-stub.ts` client virtual module): `getStore()` returns
|
|
52
|
+
* `undefined` so shims fall back to their non-ALS code path, and the mutating
|
|
53
|
+
* methods are best-effort no-ops that still invoke the callback.
|
|
54
|
+
* See: https://github.com/vercel/next.js/blob/canary/packages/next/src/server/app-render/async-local-storage.ts
|
|
55
|
+
*/
|
|
56
|
+
var NoopAsyncLocalStorage = class {
|
|
57
|
+
getStore() {}
|
|
58
|
+
run(_store, fn, ...args) {
|
|
59
|
+
return fn(...args);
|
|
60
|
+
}
|
|
61
|
+
exit(fn, ...args) {
|
|
62
|
+
return fn(...args);
|
|
63
|
+
}
|
|
64
|
+
enterWith(_store) {}
|
|
65
|
+
disable() {}
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Get (or lazily create) the AsyncLocalStorage registered on `globalThis`
|
|
69
|
+
* under `Symbol.for(key)`. Multiple callers — including callers in different
|
|
70
|
+
* module instances — that pass the same `key` receive the same ALS instance.
|
|
71
|
+
*
|
|
72
|
+
* @param key - String key fed to `Symbol.for(...)`. By convention vinext
|
|
73
|
+
* shims use a dotted namespace such as `"vinext.cache.als"`.
|
|
74
|
+
*/
|
|
75
|
+
function getOrCreateAls(key) {
|
|
76
|
+
const sym = Symbol.for(key);
|
|
77
|
+
return _g[sym] ??= typeof AsyncLocalStorage === "function" ? new AsyncLocalStorage() : new NoopAsyncLocalStorage();
|
|
78
|
+
}
|
|
79
|
+
//#endregion
|
|
80
|
+
export { getOrCreateAls };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/shims/internal/api-utils.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shim for next/dist/server/api-utils
|
|
4
|
+
*
|
|
5
|
+
* Used by: @clerk/nextjs (type-only import of NextApiRequestCookies).
|
|
6
|
+
*/
|
|
7
|
+
type NextApiRequestCookies = Partial<{
|
|
8
|
+
[key: string]: string;
|
|
9
|
+
}>;
|
|
10
|
+
type NextApiRequestQuery = Partial<{
|
|
11
|
+
[key: string]: string | string[];
|
|
12
|
+
}>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { NextApiRequestCookies, NextApiRequestQuery };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
//#region src/shims/internal/app-page-props-cache-key.d.ts
|
|
2
|
+
declare function markAppPagePropsForUseCache<T extends object>(props: T): T;
|
|
3
|
+
declare function isMarkedAppPagePropsObject(value: object): boolean;
|
|
4
|
+
//#endregion
|
|
5
|
+
export { isMarkedAppPagePropsObject, markAppPagePropsForUseCache };
|