@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,28 @@
|
|
|
1
|
+
//#region src/server/html.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* HTML-safe JSON serialization for embedding data in <script> tags.
|
|
4
|
+
*
|
|
5
|
+
* JSON.stringify does NOT escape characters that are meaningful to the
|
|
6
|
+
* HTML parser. If a JSON string value contains "</script>", the browser
|
|
7
|
+
* closes the script tag early — anything after it executes as HTML.
|
|
8
|
+
* This is a well-known stored XSS vector in SSR frameworks.
|
|
9
|
+
*
|
|
10
|
+
* Next.js mitigates this with htmlEscapeJsonString(). We do the same.
|
|
11
|
+
*
|
|
12
|
+
* Characters escaped:
|
|
13
|
+
* < → \u003c (prevents </script> and <!-- breakout)
|
|
14
|
+
* > → \u003e (prevents --> and other HTML close sequences)
|
|
15
|
+
* & → \u0026 (prevents < entity interpretation in XHTML)
|
|
16
|
+
* \u2028 → \\u2028 (line separator — invalid in JS string literals pre-ES2019)
|
|
17
|
+
* \u2029 → \\u2029 (paragraph separator — same)
|
|
18
|
+
*
|
|
19
|
+
* The result is valid JSON that is also safe to embed in any HTML context
|
|
20
|
+
* without additional escaping.
|
|
21
|
+
*/
|
|
22
|
+
declare function safeJsonStringify(data: unknown): string;
|
|
23
|
+
declare function escapeHtmlAttr(value: string): string;
|
|
24
|
+
declare function htmlTokenListContains(value: string | null, token: string): boolean;
|
|
25
|
+
declare function createNonceAttribute(nonce?: string): string;
|
|
26
|
+
declare function createInlineScriptTag(content: string, nonce?: string): string;
|
|
27
|
+
//#endregion
|
|
28
|
+
export { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr, htmlTokenListContains, safeJsonStringify };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
//#region src/server/html.ts
|
|
2
|
+
/**
|
|
3
|
+
* HTML-safe JSON serialization for embedding data in <script> tags.
|
|
4
|
+
*
|
|
5
|
+
* JSON.stringify does NOT escape characters that are meaningful to the
|
|
6
|
+
* HTML parser. If a JSON string value contains "<\/script>", the browser
|
|
7
|
+
* closes the script tag early — anything after it executes as HTML.
|
|
8
|
+
* This is a well-known stored XSS vector in SSR frameworks.
|
|
9
|
+
*
|
|
10
|
+
* Next.js mitigates this with htmlEscapeJsonString(). We do the same.
|
|
11
|
+
*
|
|
12
|
+
* Characters escaped:
|
|
13
|
+
* < → \u003c (prevents <\/script> and <!-- breakout)
|
|
14
|
+
* > → \u003e (prevents --> and other HTML close sequences)
|
|
15
|
+
* & → \u0026 (prevents < entity interpretation in XHTML)
|
|
16
|
+
* \u2028 → \\u2028 (line separator — invalid in JS string literals pre-ES2019)
|
|
17
|
+
* \u2029 → \\u2029 (paragraph separator — same)
|
|
18
|
+
*
|
|
19
|
+
* The result is valid JSON that is also safe to embed in any HTML context
|
|
20
|
+
* without additional escaping.
|
|
21
|
+
*/
|
|
22
|
+
function safeJsonStringify(data) {
|
|
23
|
+
return JSON.stringify(data).replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/&/g, "\\u0026").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
24
|
+
}
|
|
25
|
+
function escapeHtmlAttr(value) {
|
|
26
|
+
return value.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
27
|
+
}
|
|
28
|
+
const HTML_SPACE_RE = /[\t\n\f\r ]+/;
|
|
29
|
+
function htmlTokenListContains(value, token) {
|
|
30
|
+
if (value === null) return false;
|
|
31
|
+
return value.split(HTML_SPACE_RE).some((part) => part.length > 0 && part.toLowerCase() === token.toLowerCase());
|
|
32
|
+
}
|
|
33
|
+
function createNonceAttribute(nonce) {
|
|
34
|
+
if (!nonce) return "";
|
|
35
|
+
return ` nonce="${escapeHtmlAttr(nonce)}"`;
|
|
36
|
+
}
|
|
37
|
+
function createInlineScriptTag(content, nonce) {
|
|
38
|
+
return `<script${createNonceAttribute(nonce)}>${content}<\/script>`;
|
|
39
|
+
}
|
|
40
|
+
//#endregion
|
|
41
|
+
export { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr, htmlTokenListContains, safeJsonStringify };
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
//#region src/server/http-error-responses.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Shared HTTP error response builders.
|
|
4
|
+
*
|
|
5
|
+
* Centralizes the canonical `new Response("...", { status: 4xx | 5xx })` patterns
|
|
6
|
+
* that previously were scattered across server modules. Each helper standardizes
|
|
7
|
+
* the canonical body for its status; the optional `headers` argument lets callers
|
|
8
|
+
* merge middleware/middleware-context headers without re-implementing the
|
|
9
|
+
* `new Response(...)` boilerplate.
|
|
10
|
+
*
|
|
11
|
+
* Sites with route-specific bodies (e.g. `"404 - API route not found"`,
|
|
12
|
+
* `"Image not found"`, generated worker templates) intentionally remain inline
|
|
13
|
+
* because their bodies are either tested-against fixtures or run inside template
|
|
14
|
+
* strings that have no access to runtime imports.
|
|
15
|
+
*
|
|
16
|
+
* Follow-up to #1058 / #1071 / #1078, which extracted the first batch of these
|
|
17
|
+
* helpers (action/page error responses, `forbiddenResponse`, `payloadTooLargeResponse`).
|
|
18
|
+
*/
|
|
19
|
+
type ErrorResponseInit = {
|
|
20
|
+
headers?: HeadersInit;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Build a 400 Bad Request plain-text response.
|
|
24
|
+
*
|
|
25
|
+
* Used for malformed percent-encoding, invalid HTTP methods (where Next.js
|
|
26
|
+
* returns 400), and other request-shape validation failures.
|
|
27
|
+
*/
|
|
28
|
+
declare function badRequestResponse(init?: ErrorResponseInit): Response;
|
|
29
|
+
/**
|
|
30
|
+
* Build a 403 Forbidden plain-text response.
|
|
31
|
+
*
|
|
32
|
+
* Used by CSRF origin validation and dev-server origin checks.
|
|
33
|
+
*/
|
|
34
|
+
declare function forbiddenResponse(): Response;
|
|
35
|
+
/**
|
|
36
|
+
* Build a 404 Not Found plain-text response.
|
|
37
|
+
*
|
|
38
|
+
* The body matches Next.js's plain-text 404 response exactly. Next.js writes
|
|
39
|
+
* `res.end('This page could not be found')` (no trailing period) for the
|
|
40
|
+
* fallback 404 path; see in `.nextjs-ref`:
|
|
41
|
+
* - packages/next/src/server/route-modules/pages/pages-handler.ts L121, L535
|
|
42
|
+
* - packages/next/src/build/templates/app-route.ts L170, L349
|
|
43
|
+
* - packages/next/src/build/templates/app-page.ts L701, L1043
|
|
44
|
+
* (The React-rendered not-found component in `packages/next/src/client/components/builtin/not-found.tsx`
|
|
45
|
+
* uses the same text with a trailing period — that variant is rendered as HTML,
|
|
46
|
+
* not returned as the plain-text body.)
|
|
47
|
+
*
|
|
48
|
+
* The `headers` option lets call sites merge middleware response headers into
|
|
49
|
+
* the 404, matching the pattern used by `app-rsc-handler` after a route match
|
|
50
|
+
* fails but middleware has already contributed headers.
|
|
51
|
+
*/
|
|
52
|
+
declare function notFoundResponse(init?: ErrorResponseInit): Response;
|
|
53
|
+
/**
|
|
54
|
+
* Build a 404 plain-text response for invalid `_next/static/*` paths.
|
|
55
|
+
*
|
|
56
|
+
* Next.js short-circuits invalid `_next/static/*` requests with a plain-text
|
|
57
|
+
* `"Not Found"` body (NOT the rendered HTML 404 page) — saves bandwidth on
|
|
58
|
+
* what is almost certainly a misbehaving client requesting a stale chunk.
|
|
59
|
+
*
|
|
60
|
+
* Body and content-type match Next.js exactly:
|
|
61
|
+
* res.statusCode = 404
|
|
62
|
+
* res.setHeader('Content-Type', 'text/plain; charset=utf-8')
|
|
63
|
+
* res.end('Not Found')
|
|
64
|
+
*
|
|
65
|
+
* @see packages/next/src/server/lib/router-server.ts in `.nextjs-ref`
|
|
66
|
+
*/
|
|
67
|
+
declare function notFoundStaticAssetResponse(): Response;
|
|
68
|
+
/**
|
|
69
|
+
* Build a 405 Method Not Allowed plain-text response with the `Allow` header set.
|
|
70
|
+
*
|
|
71
|
+
* `allowedMethods` is rendered as the comma-separated `Allow` header value.
|
|
72
|
+
* Existing headers (e.g. middleware response headers) can be merged via `init.headers`;
|
|
73
|
+
* the `Allow` header takes precedence and overwrites any colliding entry.
|
|
74
|
+
*/
|
|
75
|
+
declare function methodNotAllowedResponse(allowedMethods: string, init?: ErrorResponseInit): Response;
|
|
76
|
+
/**
|
|
77
|
+
* Build a 413 Payload Too Large plain-text response.
|
|
78
|
+
*
|
|
79
|
+
* Used by server action body-size enforcement.
|
|
80
|
+
*/
|
|
81
|
+
declare function payloadTooLargeResponse(): Response;
|
|
82
|
+
/**
|
|
83
|
+
* Build a 500 Internal Server Error plain-text response.
|
|
84
|
+
*
|
|
85
|
+
* The `message` argument lets dev-mode handlers surface failure details while
|
|
86
|
+
* production paths fall back to the canonical body. Pass `undefined` (or omit)
|
|
87
|
+
* to use the canonical "Internal Server Error" body.
|
|
88
|
+
*/
|
|
89
|
+
declare function internalServerErrorResponse(message?: string, init?: ErrorResponseInit): Response;
|
|
90
|
+
//#endregion
|
|
91
|
+
export { badRequestResponse, forbiddenResponse, internalServerErrorResponse, methodNotAllowedResponse, notFoundResponse, notFoundStaticAssetResponse, payloadTooLargeResponse };
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
//#region src/server/http-error-responses.ts
|
|
2
|
+
/**
|
|
3
|
+
* Build a 400 Bad Request plain-text response.
|
|
4
|
+
*
|
|
5
|
+
* Used for malformed percent-encoding, invalid HTTP methods (where Next.js
|
|
6
|
+
* returns 400), and other request-shape validation failures.
|
|
7
|
+
*/
|
|
8
|
+
function badRequestResponse(init) {
|
|
9
|
+
return new Response("Bad Request", {
|
|
10
|
+
status: 400,
|
|
11
|
+
headers: init?.headers
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Build a 403 Forbidden plain-text response.
|
|
16
|
+
*
|
|
17
|
+
* Used by CSRF origin validation and dev-server origin checks.
|
|
18
|
+
*/
|
|
19
|
+
function forbiddenResponse() {
|
|
20
|
+
return new Response("Forbidden", {
|
|
21
|
+
status: 403,
|
|
22
|
+
headers: { "Content-Type": "text/plain" }
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Build a 404 Not Found plain-text response.
|
|
27
|
+
*
|
|
28
|
+
* The body matches Next.js's plain-text 404 response exactly. Next.js writes
|
|
29
|
+
* `res.end('This page could not be found')` (no trailing period) for the
|
|
30
|
+
* fallback 404 path; see in `.nextjs-ref`:
|
|
31
|
+
* - packages/next/src/server/route-modules/pages/pages-handler.ts L121, L535
|
|
32
|
+
* - packages/next/src/build/templates/app-route.ts L170, L349
|
|
33
|
+
* - packages/next/src/build/templates/app-page.ts L701, L1043
|
|
34
|
+
* (The React-rendered not-found component in `packages/next/src/client/components/builtin/not-found.tsx`
|
|
35
|
+
* uses the same text with a trailing period — that variant is rendered as HTML,
|
|
36
|
+
* not returned as the plain-text body.)
|
|
37
|
+
*
|
|
38
|
+
* The `headers` option lets call sites merge middleware response headers into
|
|
39
|
+
* the 404, matching the pattern used by `app-rsc-handler` after a route match
|
|
40
|
+
* fails but middleware has already contributed headers.
|
|
41
|
+
*/
|
|
42
|
+
function notFoundResponse(init) {
|
|
43
|
+
return new Response("This page could not be found", {
|
|
44
|
+
status: 404,
|
|
45
|
+
headers: init?.headers
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Build a 404 plain-text response for invalid `_next/static/*` paths.
|
|
50
|
+
*
|
|
51
|
+
* Next.js short-circuits invalid `_next/static/*` requests with a plain-text
|
|
52
|
+
* `"Not Found"` body (NOT the rendered HTML 404 page) — saves bandwidth on
|
|
53
|
+
* what is almost certainly a misbehaving client requesting a stale chunk.
|
|
54
|
+
*
|
|
55
|
+
* Body and content-type match Next.js exactly:
|
|
56
|
+
* res.statusCode = 404
|
|
57
|
+
* res.setHeader('Content-Type', 'text/plain; charset=utf-8')
|
|
58
|
+
* res.end('Not Found')
|
|
59
|
+
*
|
|
60
|
+
* @see packages/next/src/server/lib/router-server.ts in `.nextjs-ref`
|
|
61
|
+
*/
|
|
62
|
+
function notFoundStaticAssetResponse() {
|
|
63
|
+
return new Response("Not Found", {
|
|
64
|
+
status: 404,
|
|
65
|
+
headers: { "Content-Type": "text/plain; charset=utf-8" }
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Build a 405 Method Not Allowed plain-text response with the `Allow` header set.
|
|
70
|
+
*
|
|
71
|
+
* `allowedMethods` is rendered as the comma-separated `Allow` header value.
|
|
72
|
+
* Existing headers (e.g. middleware response headers) can be merged via `init.headers`;
|
|
73
|
+
* the `Allow` header takes precedence and overwrites any colliding entry.
|
|
74
|
+
*/
|
|
75
|
+
function methodNotAllowedResponse(allowedMethods, init) {
|
|
76
|
+
const headers = new Headers(init?.headers);
|
|
77
|
+
headers.set("Allow", allowedMethods);
|
|
78
|
+
return new Response("Method Not Allowed", {
|
|
79
|
+
status: 405,
|
|
80
|
+
headers
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Build a 413 Payload Too Large plain-text response.
|
|
85
|
+
*
|
|
86
|
+
* Used by server action body-size enforcement.
|
|
87
|
+
*/
|
|
88
|
+
function payloadTooLargeResponse() {
|
|
89
|
+
return new Response("Payload Too Large", { status: 413 });
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Build a 500 Internal Server Error plain-text response.
|
|
93
|
+
*
|
|
94
|
+
* The `message` argument lets dev-mode handlers surface failure details while
|
|
95
|
+
* production paths fall back to the canonical body. Pass `undefined` (or omit)
|
|
96
|
+
* to use the canonical "Internal Server Error" body.
|
|
97
|
+
*/
|
|
98
|
+
function internalServerErrorResponse(message, init) {
|
|
99
|
+
return new Response(message ?? "Internal Server Error", {
|
|
100
|
+
status: 500,
|
|
101
|
+
headers: init?.headers
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
//#endregion
|
|
105
|
+
export { badRequestResponse, forbiddenResponse, internalServerErrorResponse, methodNotAllowedResponse, notFoundResponse, notFoundStaticAssetResponse, payloadTooLargeResponse };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
//#region src/server/hybrid-route-priority.d.ts
|
|
2
|
+
type HybridRoutePriorityRoute = {
|
|
3
|
+
isDynamic: boolean;
|
|
4
|
+
pattern: string;
|
|
5
|
+
sourcePath?: string | null;
|
|
6
|
+
};
|
|
7
|
+
declare function validateHybridRouteConflicts(pagesRoutes: readonly HybridRoutePriorityRoute[], appRoutes: readonly HybridRoutePriorityRoute[]): void;
|
|
8
|
+
/**
|
|
9
|
+
* Return whether a matched Pages Router route should own the request instead
|
|
10
|
+
* of a matched App Router route.
|
|
11
|
+
*
|
|
12
|
+
* Next.js registers Pages providers before App providers, then sorts all
|
|
13
|
+
* dynamic route pathnames together in DefaultRouteMatcherManager. Vinext keeps
|
|
14
|
+
* separate route tries for each router, so the hybrid boundary needs to apply
|
|
15
|
+
* that same cross-router ordering after both routers have produced their best
|
|
16
|
+
* local match. The decision itself lives in
|
|
17
|
+
* `routing/utils.ts#compareHybridRoutePatterns` so the server and client
|
|
18
|
+
* always reach the same answer.
|
|
19
|
+
*/
|
|
20
|
+
declare function pagesRouteHasPriorityOverAppRoute(pagesRoute: HybridRoutePriorityRoute, appRoute: HybridRoutePriorityRoute | null): boolean;
|
|
21
|
+
//#endregion
|
|
22
|
+
export { HybridRoutePriorityRoute, pagesRouteHasPriorityOverAppRoute, validateHybridRouteConflicts };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { compareHybridRoutePatterns } from "../routing/utils.js";
|
|
2
|
+
import { validateRoutePatterns } from "../routing/route-validation.js";
|
|
3
|
+
//#region src/server/hybrid-route-priority.ts
|
|
4
|
+
function validateHybridRouteConflicts(pagesRoutes, appRoutes) {
|
|
5
|
+
const pagesByPattern = new Map(pagesRoutes.map((route) => [route.pattern, route]));
|
|
6
|
+
const conflicts = appRoutes.flatMap((appRoute) => {
|
|
7
|
+
const pagesRoute = pagesByPattern.get(appRoute.pattern);
|
|
8
|
+
return pagesRoute === void 0 ? [] : [[pagesRoute, appRoute]];
|
|
9
|
+
});
|
|
10
|
+
if (conflicts.length > 0) {
|
|
11
|
+
const message = `Conflicting app and page file${conflicts.length === 1 ? " was" : "s were"} found, please remove the conflicting files to continue:`;
|
|
12
|
+
throw new Error(`${message}\n${conflicts.map(([pagesRoute, appRoute]) => ` "${pagesRoute.sourcePath ?? pagesRoute.pattern}" - "${appRoute.sourcePath ?? appRoute.pattern}"`).join("\n")}`);
|
|
13
|
+
}
|
|
14
|
+
validateRoutePatterns([...pagesRoutes.map((route) => route.pattern), ...appRoutes.map((route) => route.pattern)]);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Return whether a matched Pages Router route should own the request instead
|
|
18
|
+
* of a matched App Router route.
|
|
19
|
+
*
|
|
20
|
+
* Next.js registers Pages providers before App providers, then sorts all
|
|
21
|
+
* dynamic route pathnames together in DefaultRouteMatcherManager. Vinext keeps
|
|
22
|
+
* separate route tries for each router, so the hybrid boundary needs to apply
|
|
23
|
+
* that same cross-router ordering after both routers have produced their best
|
|
24
|
+
* local match. The decision itself lives in
|
|
25
|
+
* `routing/utils.ts#compareHybridRoutePatterns` so the server and client
|
|
26
|
+
* always reach the same answer.
|
|
27
|
+
*/
|
|
28
|
+
function pagesRouteHasPriorityOverAppRoute(pagesRoute, appRoute) {
|
|
29
|
+
if (appRoute === null) return true;
|
|
30
|
+
return compareHybridRoutePatterns(pagesRoute.pattern, pagesRoute.isDynamic, appRoute.pattern, appRoute.isDynamic) === "pages";
|
|
31
|
+
}
|
|
32
|
+
//#endregion
|
|
33
|
+
export { pagesRouteHasPriorityOverAppRoute, validateHybridRouteConflicts };
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
//#region src/server/image-optimization.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Image optimization request handler.
|
|
4
|
+
*
|
|
5
|
+
* Handles `/_next/image?url=...&w=...&q=...` requests. In production
|
|
6
|
+
* on Cloudflare Workers, uses the Images binding (`env.IMAGES`) to
|
|
7
|
+
* resize and transcode on the fly. On other runtimes (Node.js dev/prod
|
|
8
|
+
* server), serves the original file as a passthrough with appropriate
|
|
9
|
+
* Cache-Control headers.
|
|
10
|
+
*
|
|
11
|
+
* Format negotiation: inspects the `Accept` header and serves AVIF, WebP,
|
|
12
|
+
* or JPEG depending on client support.
|
|
13
|
+
*
|
|
14
|
+
* Security: All image responses include Content-Security-Policy and
|
|
15
|
+
* X-Content-Type-Options headers to prevent XSS via SVG or Content-Type
|
|
16
|
+
* spoofing. SVG content is blocked by default (following Next.js behavior).
|
|
17
|
+
* When `dangerouslyAllowSVG` is enabled in next.config.js, SVGs are served
|
|
18
|
+
* as-is (no transformation) with security headers applied.
|
|
19
|
+
*/
|
|
20
|
+
/** The pathname that triggers image optimization (matches Next.js). */
|
|
21
|
+
declare const IMAGE_OPTIMIZATION_PATH = "/_next/image";
|
|
22
|
+
/**
|
|
23
|
+
* Vinext-prefixed alias for the image optimization endpoint. Accepted
|
|
24
|
+
* alongside IMAGE_OPTIMIZATION_PATH so apps that wire image URLs to the
|
|
25
|
+
* vinext-prefixed path continue to work; emit IMAGE_OPTIMIZATION_PATH
|
|
26
|
+
* for any newly generated URLs.
|
|
27
|
+
*/
|
|
28
|
+
declare const VINEXT_IMAGE_OPTIMIZATION_PATH = "/_vinext/image";
|
|
29
|
+
/** Returns true when `pathname` is either supported image optimization endpoint. */
|
|
30
|
+
declare function isImageOptimizationPath(pathname: string): boolean;
|
|
31
|
+
/**
|
|
32
|
+
* Image security configuration from next.config.js `images` section.
|
|
33
|
+
* Controls SVG handling and security headers for the image endpoint.
|
|
34
|
+
*/
|
|
35
|
+
type ImageConfig = {
|
|
36
|
+
/** Allowed device widths. Defaults to Next.js device sizes. */deviceSizes?: number[]; /** Allowed fixed-image widths. Defaults to Next.js image sizes. */
|
|
37
|
+
imageSizes?: number[];
|
|
38
|
+
/**
|
|
39
|
+
* Allowed output qualities. When unset, any quality from 1-100 is permitted
|
|
40
|
+
* (matches Next.js: an unset `images.qualities` is not restricted to a single
|
|
41
|
+
* value). When set, only the listed qualities are accepted.
|
|
42
|
+
*/
|
|
43
|
+
qualities?: number[]; /** Allow SVG through the image optimization endpoint. Default: false. */
|
|
44
|
+
dangerouslyAllowSVG?: boolean;
|
|
45
|
+
/**
|
|
46
|
+
* Allow image optimization for hostnames that resolve to private IP addresses.
|
|
47
|
+
* Default: false.
|
|
48
|
+
*
|
|
49
|
+
* Note: This field is currently reserved for future server-side remote-image
|
|
50
|
+
* fetching. vinext's image optimization endpoint only serves local files, so
|
|
51
|
+
* there is no active server-side SSRF vector — the flag is consumed client-side
|
|
52
|
+
* via the image shim instead.
|
|
53
|
+
*/
|
|
54
|
+
dangerouslyAllowLocalIP?: boolean; /** Content-Disposition header value. Default: "inline". */
|
|
55
|
+
contentDispositionType?: "inline" | "attachment"; /** Content-Security-Policy header value. Default: "script-src 'none'; frame-src 'none'; sandbox;" */
|
|
56
|
+
contentSecurityPolicy?: string;
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* Next.js default device sizes and image sizes.
|
|
60
|
+
* These are the allowed widths for image optimization when no custom
|
|
61
|
+
* config is provided. Matches Next.js defaults exactly.
|
|
62
|
+
*/
|
|
63
|
+
declare const DEFAULT_DEVICE_SIZES: number[];
|
|
64
|
+
declare const DEFAULT_IMAGE_SIZES: number[];
|
|
65
|
+
type ParseImageParamsOptions = {
|
|
66
|
+
isDev?: boolean;
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* Pick the allowed width numerically closest to the requested value.
|
|
70
|
+
* On a tie, prefer the larger width so the served image is not undersized.
|
|
71
|
+
*/
|
|
72
|
+
declare function snapToNearestAllowedWidth(requestedWidth: number, allowedWidths: number[]): number;
|
|
73
|
+
declare function resolveDevImageRedirect(requestUrl: URL, allowedWidths?: number[], allowedQualities?: number[], options?: ParseImageParamsOptions): string | null;
|
|
74
|
+
/**
|
|
75
|
+
* Parse and validate image optimization query parameters.
|
|
76
|
+
* Returns null if the request is malformed.
|
|
77
|
+
*
|
|
78
|
+
* Ported from Next.js:
|
|
79
|
+
* test/integration/image-optimizer/test/index.test.ts
|
|
80
|
+
* https://github.com/vercel/next.js/blob/canary/test/integration/image-optimizer/test/index.test.ts
|
|
81
|
+
*/
|
|
82
|
+
declare function parseImageParams(url: URL, allowedWidths?: number[], allowedQualities?: number[], options?: ParseImageParamsOptions): {
|
|
83
|
+
imageUrl: string;
|
|
84
|
+
width: number;
|
|
85
|
+
quality: number;
|
|
86
|
+
} | null;
|
|
87
|
+
/**
|
|
88
|
+
* Negotiate the best output format based on the Accept header.
|
|
89
|
+
* Returns an IANA media type.
|
|
90
|
+
*/
|
|
91
|
+
declare function negotiateImageFormat(acceptHeader: string | null): string;
|
|
92
|
+
/**
|
|
93
|
+
* Standard Cache-Control header for optimized images.
|
|
94
|
+
* Optimized images are immutable because the URL encodes the transform params.
|
|
95
|
+
*/
|
|
96
|
+
declare const IMAGE_CACHE_CONTROL = "public, max-age=31536000, immutable";
|
|
97
|
+
/**
|
|
98
|
+
* Content-Security-Policy for image optimization responses.
|
|
99
|
+
* Blocks script execution and framing to prevent XSS via SVG or other
|
|
100
|
+
* active content that might be served through the image endpoint.
|
|
101
|
+
* Matches Next.js default: script-src 'none'; frame-src 'none'; sandbox;
|
|
102
|
+
*/
|
|
103
|
+
declare const IMAGE_CONTENT_SECURITY_POLICY = "script-src 'none'; frame-src 'none'; sandbox;";
|
|
104
|
+
/**
|
|
105
|
+
* Check if a Content-Type header value is a safe image type.
|
|
106
|
+
* Returns false for SVG (unless dangerouslyAllowSVG is true), HTML, or any non-image type.
|
|
107
|
+
*/
|
|
108
|
+
declare function isSafeImageContentType(contentType: string | null, dangerouslyAllowSVG?: boolean): boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Handlers for image optimization I/O operations.
|
|
111
|
+
* Workers provide these callbacks to adapt their specific bindings.
|
|
112
|
+
*/
|
|
113
|
+
type ImageHandlers = {
|
|
114
|
+
/** Fetch the source image from storage (e.g., Cloudflare ASSETS binding). */fetchAsset: (path: string, request: Request) => Promise<Response>; /** Optional: Transform the image (resize, format, quality). */
|
|
115
|
+
transformImage?: (body: ReadableStream, options: {
|
|
116
|
+
width: number;
|
|
117
|
+
format: string;
|
|
118
|
+
quality: number;
|
|
119
|
+
}) => Promise<Response>;
|
|
120
|
+
};
|
|
121
|
+
/**
|
|
122
|
+
* Handle image optimization requests.
|
|
123
|
+
*
|
|
124
|
+
* Parses and validates the request, fetches the source image via the provided
|
|
125
|
+
* handlers, optionally transforms it, and returns the response with appropriate
|
|
126
|
+
* cache headers.
|
|
127
|
+
*/
|
|
128
|
+
declare function handleImageOptimization(request: Request, handlers: ImageHandlers, allowedWidths?: number[], imageConfig?: ImageConfig): Promise<Response>;
|
|
129
|
+
//#endregion
|
|
130
|
+
export { DEFAULT_DEVICE_SIZES, DEFAULT_IMAGE_SIZES, IMAGE_CACHE_CONTROL, IMAGE_CONTENT_SECURITY_POLICY, IMAGE_OPTIMIZATION_PATH, ImageConfig, ImageHandlers, ParseImageParamsOptions, VINEXT_IMAGE_OPTIMIZATION_PATH, handleImageOptimization, isImageOptimizationPath, isSafeImageContentType, negotiateImageFormat, parseImageParams, resolveDevImageRedirect, snapToNearestAllowedWidth };
|