@qzsy/vinext 0.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +773 -0
- package/dist/build/assets-ignore.d.ts +32 -0
- package/dist/build/assets-ignore.js +48 -0
- package/dist/build/clean-output.d.ts +13 -0
- package/dist/build/clean-output.js +34 -0
- package/dist/build/client-build-config.d.ts +171 -0
- package/dist/build/client-build-config.js +270 -0
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +213 -0
- package/dist/build/google-fonts/build-url.d.ts +9 -0
- package/dist/build/google-fonts/build-url.js +28 -0
- package/dist/build/google-fonts/fallback-metrics-data.js +14029 -0
- package/dist/build/google-fonts/fallback-metrics.d.ts +12 -0
- package/dist/build/google-fonts/fallback-metrics.js +44 -0
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +16 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +28 -0
- package/dist/build/google-fonts/font-data.js +24983 -0
- package/dist/build/google-fonts/font-metadata.d.ts +16 -0
- package/dist/build/google-fonts/font-metadata.js +5 -0
- package/dist/build/google-fonts/get-axes.d.ts +6 -0
- package/dist/build/google-fonts/get-axes.js +37 -0
- package/dist/build/google-fonts/sort-variants.d.ts +4 -0
- package/dist/build/google-fonts/sort-variants.js +12 -0
- package/dist/build/google-fonts/validate.d.ts +27 -0
- package/dist/build/google-fonts/validate.js +54 -0
- package/dist/build/inline-css.d.ts +6 -0
- package/dist/build/inline-css.js +48 -0
- package/dist/build/layout-classification-types.d.ts +61 -0
- package/dist/build/layout-classification-types.js +1 -0
- package/dist/build/layout-classification.d.ts +59 -0
- package/dist/build/layout-classification.js +98 -0
- package/dist/build/next-client-runtime-manifests.d.ts +14 -0
- package/dist/build/next-client-runtime-manifests.js +39 -0
- package/dist/build/nitro-route-rules.d.ts +49 -0
- package/dist/build/nitro-route-rules.js +79 -0
- package/dist/build/precompress.d.ts +27 -0
- package/dist/build/precompress.js +110 -0
- package/dist/build/prerender.d.ts +209 -0
- package/dist/build/prerender.js +932 -0
- package/dist/build/report.d.ts +132 -0
- package/dist/build/report.js +504 -0
- package/dist/build/route-classification-injector.d.ts +34 -0
- package/dist/build/route-classification-injector.js +59 -0
- package/dist/build/route-classification-manifest.d.ts +52 -0
- package/dist/build/route-classification-manifest.js +143 -0
- package/dist/build/run-prerender.d.ts +61 -0
- package/dist/build/run-prerender.js +224 -0
- package/dist/build/server-manifest.d.ts +18 -0
- package/dist/build/server-manifest.js +22 -0
- package/dist/build/ssr-manifest.d.ts +18 -0
- package/dist/build/ssr-manifest.js +69 -0
- package/dist/build/standalone.d.ts +31 -0
- package/dist/build/standalone.js +203 -0
- package/dist/build/static-export.d.ts +55 -0
- package/dist/build/static-export.js +60 -0
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/cache.d.ts +2 -0
- package/dist/cache.js +2 -0
- package/dist/check.d.ts +87 -0
- package/dist/check.js +1037 -0
- package/dist/cli-args.d.ts +33 -0
- package/dist/cli-args.js +124 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +744 -0
- package/dist/client/app-nav-failure-handler.d.ts +8 -0
- package/dist/client/app-nav-failure-handler.js +44 -0
- package/dist/client/empty-module.d.ts +1 -0
- package/dist/client/empty-module.js +1 -0
- package/dist/client/instrumentation-client-inject.d.ts +33 -0
- package/dist/client/instrumentation-client-inject.js +55 -0
- package/dist/client/instrumentation-client-state.d.ts +9 -0
- package/dist/client/instrumentation-client-state.js +17 -0
- package/dist/client/instrumentation-client.d.ts +7 -0
- package/dist/client/instrumentation-client.js +6 -0
- package/dist/client/navigation-runtime.d.ts +70 -0
- package/dist/client/navigation-runtime.js +169 -0
- package/dist/client/pages-router-link-navigation.d.ts +61 -0
- package/dist/client/pages-router-link-navigation.js +42 -0
- package/dist/client/validate-module-path.d.ts +17 -0
- package/dist/client/validate-module-path.js +24 -0
- package/dist/client/vinext-next-data.d.ts +44 -0
- package/dist/client/vinext-next-data.js +50 -0
- package/dist/client/window-next.d.ts +168 -0
- package/dist/client/window-next.js +57 -0
- package/dist/cloudflare/index.d.ts +3 -0
- package/dist/cloudflare/index.js +3 -0
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +102 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.d.ts +126 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.js +435 -0
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +82 -0
- package/dist/cloudflare/tpr.js +558 -0
- package/dist/config/config-matchers.d.ts +257 -0
- package/dist/config/config-matchers.js +1046 -0
- package/dist/config/dotenv.d.ts +56 -0
- package/dist/config/dotenv.js +88 -0
- package/dist/config/next-config.d.ts +540 -0
- package/dist/config/next-config.js +1050 -0
- package/dist/config/tsconfig-paths.d.ts +21 -0
- package/dist/config/tsconfig-paths.js +157 -0
- package/dist/deploy.d.ts +190 -0
- package/dist/deploy.js +1033 -0
- package/dist/entries/app-browser-entry.d.ts +29 -0
- package/dist/entries/app-browser-entry.js +83 -0
- package/dist/entries/app-rsc-entry.d.ts +81 -0
- package/dist/entries/app-rsc-entry.js +943 -0
- package/dist/entries/app-rsc-manifest.d.ts +53 -0
- package/dist/entries/app-rsc-manifest.js +294 -0
- package/dist/entries/app-ssr-entry.d.ts +15 -0
- package/dist/entries/app-ssr-entry.js +24 -0
- package/dist/entries/pages-client-entry.d.ts +11 -0
- package/dist/entries/pages-client-entry.js +204 -0
- package/dist/entries/pages-entry-helpers.d.ts +2 -0
- package/dist/entries/pages-entry-helpers.js +2 -0
- package/dist/entries/pages-server-entry.d.ts +11 -0
- package/dist/entries/pages-server-entry.js +398 -0
- package/dist/entries/runtime-entry-module.d.ts +25 -0
- package/dist/entries/runtime-entry-module.js +46 -0
- package/dist/index.d.ts +115 -0
- package/dist/index.js +2661 -0
- package/dist/init.d.ts +69 -0
- package/dist/init.js +253 -0
- package/dist/plugins/ast-utils.d.ts +20 -0
- package/dist/plugins/ast-utils.js +78 -0
- package/dist/plugins/async-hooks-stub.d.ts +18 -0
- package/dist/plugins/async-hooks-stub.js +40 -0
- package/dist/plugins/client-reference-dedup.d.ts +35 -0
- package/dist/plugins/client-reference-dedup.js +189 -0
- package/dist/plugins/css-data-url.d.ts +6 -0
- package/dist/plugins/css-data-url.js +83 -0
- package/dist/plugins/dynamic-preload-metadata.d.ts +13 -0
- package/dist/plugins/dynamic-preload-metadata.js +413 -0
- package/dist/plugins/extensionless-dynamic-import.d.ts +6 -0
- package/dist/plugins/extensionless-dynamic-import.js +155 -0
- package/dist/plugins/fonts.d.ts +95 -0
- package/dist/plugins/fonts.js +711 -0
- package/dist/plugins/import-meta-url.d.ts +16 -0
- package/dist/plugins/import-meta-url.js +353 -0
- package/dist/plugins/instrumentation-client.d.ts +6 -0
- package/dist/plugins/instrumentation-client.js +27 -0
- package/dist/plugins/middleware-export-validation.d.ts +5 -0
- package/dist/plugins/middleware-export-validation.js +36 -0
- package/dist/plugins/middleware-server-only.d.ts +53 -0
- package/dist/plugins/middleware-server-only.js +90 -0
- package/dist/plugins/og-asset-ownership.d.ts +27 -0
- package/dist/plugins/og-asset-ownership.js +285 -0
- package/dist/plugins/og-assets.d.ts +50 -0
- package/dist/plugins/og-assets.js +229 -0
- package/dist/plugins/optimize-imports.d.ts +42 -0
- package/dist/plugins/optimize-imports.js +587 -0
- package/dist/plugins/postcss.d.ts +26 -0
- package/dist/plugins/postcss.js +96 -0
- package/dist/plugins/remove-console.d.ts +21 -0
- package/dist/plugins/remove-console.js +177 -0
- package/dist/plugins/require-context.d.ts +6 -0
- package/dist/plugins/require-context.js +185 -0
- package/dist/plugins/rsc-client-reference-loaders.d.ts +6 -0
- package/dist/plugins/rsc-client-reference-loaders.js +46 -0
- package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
- package/dist/plugins/rsc-client-shim-excludes.js +35 -0
- package/dist/plugins/sass.d.ts +62 -0
- package/dist/plugins/sass.js +268 -0
- package/dist/plugins/server-externals-manifest.d.ts +26 -0
- package/dist/plugins/server-externals-manifest.js +81 -0
- package/dist/plugins/strip-server-exports.d.ts +21 -0
- package/dist/plugins/strip-server-exports.js +519 -0
- package/dist/plugins/typeof-window.d.ts +14 -0
- package/dist/plugins/typeof-window.js +150 -0
- package/dist/plugins/wasm-module-import.d.ts +15 -0
- package/dist/plugins/wasm-module-import.js +50 -0
- package/dist/routing/app-route-graph.d.ts +336 -0
- package/dist/routing/app-route-graph.js +1518 -0
- package/dist/routing/app-router.d.ts +30 -0
- package/dist/routing/app-router.js +59 -0
- package/dist/routing/file-matcher.d.ts +60 -0
- package/dist/routing/file-matcher.js +147 -0
- package/dist/routing/pages-router.d.ts +48 -0
- package/dist/routing/pages-router.js +163 -0
- package/dist/routing/route-matching.d.ts +27 -0
- package/dist/routing/route-matching.js +42 -0
- package/dist/routing/route-pattern.d.ts +64 -0
- package/dist/routing/route-pattern.js +165 -0
- package/dist/routing/route-trie.d.ts +67 -0
- package/dist/routing/route-trie.js +143 -0
- package/dist/routing/route-validation.d.ts +10 -0
- package/dist/routing/route-validation.js +101 -0
- package/dist/routing/utils.d.ts +117 -0
- package/dist/routing/utils.js +242 -0
- package/dist/server/accept-encoding.d.ts +29 -0
- package/dist/server/accept-encoding.js +95 -0
- package/dist/server/api-handler.d.ts +17 -0
- package/dist/server/api-handler.js +276 -0
- package/dist/server/app-action-request.d.ts +4 -0
- package/dist/server/app-action-request.js +9 -0
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-bfcache-identity.d.ts +36 -0
- package/dist/server/app-bfcache-identity.js +156 -0
- package/dist/server/app-browser-action-result.d.ts +64 -0
- package/dist/server/app-browser-action-result.js +111 -0
- package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
- package/dist/server/app-browser-client-reuse-manifest.js +101 -0
- package/dist/server/app-browser-entry.d.ts +1 -0
- package/dist/server/app-browser-entry.js +1087 -0
- package/dist/server/app-browser-error.d.ts +13 -0
- package/dist/server/app-browser-error.js +52 -0
- package/dist/server/app-browser-history-controller.d.ts +104 -0
- package/dist/server/app-browser-history-controller.js +210 -0
- package/dist/server/app-browser-hydration.d.ts +32 -0
- package/dist/server/app-browser-hydration.js +29 -0
- package/dist/server/app-browser-interception-context.d.ts +24 -0
- package/dist/server/app-browser-interception-context.js +43 -0
- package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
- package/dist/server/app-browser-mpa-navigation.js +42 -0
- package/dist/server/app-browser-navigation-controller.d.ts +109 -0
- package/dist/server/app-browser-navigation-controller.js +465 -0
- package/dist/server/app-browser-popstate.d.ts +26 -0
- package/dist/server/app-browser-popstate.js +44 -0
- package/dist/server/app-browser-rsc-redirect.d.ts +38 -0
- package/dist/server/app-browser-rsc-redirect.js +64 -0
- package/dist/server/app-browser-server-action-client.d.ts +32 -0
- package/dist/server/app-browser-server-action-client.js +128 -0
- package/dist/server/app-browser-server-action-navigation.d.ts +6 -0
- package/dist/server/app-browser-server-action-navigation.js +9 -0
- package/dist/server/app-browser-state.d.ts +140 -0
- package/dist/server/app-browser-state.js +315 -0
- package/dist/server/app-browser-stream.d.ts +28 -0
- package/dist/server/app-browser-stream.js +122 -0
- package/dist/server/app-browser-visible-commit.d.ts +78 -0
- package/dist/server/app-browser-visible-commit.js +241 -0
- package/dist/server/app-client-reference-preloader.d.ts +14 -0
- package/dist/server/app-client-reference-preloader.js +44 -0
- package/dist/server/app-elements-wire.d.ts +192 -0
- package/dist/server/app-elements-wire.js +443 -0
- package/dist/server/app-elements.d.ts +9 -0
- package/dist/server/app-elements.js +18 -0
- package/dist/server/app-fallback-renderer.d.ts +89 -0
- package/dist/server/app-fallback-renderer.js +136 -0
- package/dist/server/app-history-state.d.ts +85 -0
- package/dist/server/app-history-state.js +223 -0
- package/dist/server/app-hook-warning-suppression.d.ts +6 -0
- package/dist/server/app-hook-warning-suppression.js +10 -0
- package/dist/server/app-inline-css-client.d.ts +6 -0
- package/dist/server/app-inline-css-client.js +35 -0
- package/dist/server/app-interception-context-header.d.ts +32 -0
- package/dist/server/app-interception-context-header.js +42 -0
- package/dist/server/app-layout-param-observation.d.ts +43 -0
- package/dist/server/app-layout-param-observation.js +168 -0
- package/dist/server/app-middleware.d.ts +46 -0
- package/dist/server/app-middleware.js +168 -0
- package/dist/server/app-mounted-slots-header.d.ts +35 -0
- package/dist/server/app-mounted-slots-header.js +58 -0
- package/dist/server/app-optimistic-routing.d.ts +53 -0
- package/dist/server/app-optimistic-routing.js +227 -0
- package/dist/server/app-page-boundary-render.d.ts +85 -0
- package/dist/server/app-page-boundary-render.js +305 -0
- package/dist/server/app-page-boundary.d.ts +102 -0
- package/dist/server/app-page-boundary.js +120 -0
- package/dist/server/app-page-cache-finalizer.d.ts +62 -0
- package/dist/server/app-page-cache-finalizer.js +122 -0
- package/dist/server/app-page-cache-render.d.ts +53 -0
- package/dist/server/app-page-cache-render.js +91 -0
- package/dist/server/app-page-cache.d.ts +83 -0
- package/dist/server/app-page-cache.js +272 -0
- package/dist/server/app-page-dispatch.d.ts +223 -0
- package/dist/server/app-page-dispatch.js +610 -0
- package/dist/server/app-page-element-builder.d.ts +96 -0
- package/dist/server/app-page-element-builder.js +205 -0
- package/dist/server/app-page-execution.d.ts +138 -0
- package/dist/server/app-page-execution.js +328 -0
- package/dist/server/app-page-head.d.ts +65 -0
- package/dist/server/app-page-head.js +228 -0
- package/dist/server/app-page-method.d.ts +15 -0
- package/dist/server/app-page-method.js +25 -0
- package/dist/server/app-page-params.d.ts +8 -0
- package/dist/server/app-page-params.js +39 -0
- package/dist/server/app-page-ppr-runtime.d.ts +7 -0
- package/dist/server/app-page-ppr-runtime.js +70 -0
- package/dist/server/app-page-probe.d.ts +134 -0
- package/dist/server/app-page-probe.js +276 -0
- package/dist/server/app-page-render-identity.d.ts +21 -0
- package/dist/server/app-page-render-identity.js +40 -0
- package/dist/server/app-page-render-observation.d.ts +36 -0
- package/dist/server/app-page-render-observation.js +82 -0
- package/dist/server/app-page-render.d.ts +111 -0
- package/dist/server/app-page-render.js +602 -0
- package/dist/server/app-page-request.d.ts +137 -0
- package/dist/server/app-page-request.js +216 -0
- package/dist/server/app-page-response.d.ts +68 -0
- package/dist/server/app-page-response.js +120 -0
- package/dist/server/app-page-route-wiring.d.ts +151 -0
- package/dist/server/app-page-route-wiring.js +452 -0
- package/dist/server/app-page-search-params-observation.d.ts +10 -0
- package/dist/server/app-page-search-params-observation.js +20 -0
- package/dist/server/app-page-segment-state.d.ts +9 -0
- package/dist/server/app-page-segment-state.js +80 -0
- package/dist/server/app-page-stream.d.ts +151 -0
- package/dist/server/app-page-stream.js +143 -0
- package/dist/server/app-pages-bridge.d.ts +63 -0
- package/dist/server/app-pages-bridge.js +63 -0
- package/dist/server/app-post-middleware-context.d.ts +15 -0
- package/dist/server/app-post-middleware-context.js +26 -0
- package/dist/server/app-ppr-fallback-shell-render.d.ts +18 -0
- package/dist/server/app-ppr-fallback-shell-render.js +26 -0
- package/dist/server/app-ppr-fallback-shell.d.ts +33 -0
- package/dist/server/app-ppr-fallback-shell.js +89 -0
- package/dist/server/app-prerender-endpoints.d.ts +18 -0
- package/dist/server/app-prerender-endpoints.js +94 -0
- package/dist/server/app-prerender-static-params.d.ts +30 -0
- package/dist/server/app-prerender-static-params.js +81 -0
- package/dist/server/app-render-dependency.d.ts +14 -0
- package/dist/server/app-render-dependency.js +41 -0
- package/dist/server/app-request-context.d.ts +20 -0
- package/dist/server/app-request-context.js +29 -0
- package/dist/server/app-route-handler-cache.d.ts +46 -0
- package/dist/server/app-route-handler-cache.js +78 -0
- package/dist/server/app-route-handler-dispatch.d.ts +49 -0
- package/dist/server/app-route-handler-dispatch.js +163 -0
- package/dist/server/app-route-handler-execution.d.ts +86 -0
- package/dist/server/app-route-handler-execution.js +128 -0
- package/dist/server/app-route-handler-policy.d.ts +55 -0
- package/dist/server/app-route-handler-policy.js +58 -0
- package/dist/server/app-route-handler-response.d.ts +28 -0
- package/dist/server/app-route-handler-response.js +145 -0
- package/dist/server/app-route-handler-runtime.d.ts +39 -0
- package/dist/server/app-route-handler-runtime.js +250 -0
- package/dist/server/app-route-module-loader.d.ts +91 -0
- package/dist/server/app-route-module-loader.js +83 -0
- package/dist/server/app-router-entry.d.ts +13 -0
- package/dist/server/app-router-entry.js +49 -0
- package/dist/server/app-rsc-cache-busting.d.ts +64 -0
- package/dist/server/app-rsc-cache-busting.js +206 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +8 -0
- package/dist/server/app-rsc-embedded-chunks.js +32 -0
- package/dist/server/app-rsc-error-handler.d.ts +20 -0
- package/dist/server/app-rsc-error-handler.js +28 -0
- package/dist/server/app-rsc-errors.d.ts +40 -0
- package/dist/server/app-rsc-errors.js +60 -0
- package/dist/server/app-rsc-handler.d.ts +201 -0
- package/dist/server/app-rsc-handler.js +538 -0
- package/dist/server/app-rsc-render-mode.d.ts +11 -0
- package/dist/server/app-rsc-render-mode.js +25 -0
- package/dist/server/app-rsc-request-normalization.d.ts +48 -0
- package/dist/server/app-rsc-request-normalization.js +75 -0
- package/dist/server/app-rsc-response-finalizer.d.ts +37 -0
- package/dist/server/app-rsc-response-finalizer.js +54 -0
- package/dist/server/app-rsc-route-matching.d.ts +93 -0
- package/dist/server/app-rsc-route-matching.js +134 -0
- package/dist/server/app-segment-config.d.ts +46 -0
- package/dist/server/app-segment-config.js +113 -0
- package/dist/server/app-server-action-execution.d.ts +219 -0
- package/dist/server/app-server-action-execution.js +767 -0
- package/dist/server/app-ssr-entry.d.ts +52 -0
- package/dist/server/app-ssr-entry.js +295 -0
- package/dist/server/app-ssr-error-meta.d.ts +13 -0
- package/dist/server/app-ssr-error-meta.js +48 -0
- package/dist/server/app-ssr-router-instance.d.ts +6 -0
- package/dist/server/app-ssr-router-instance.js +24 -0
- package/dist/server/app-ssr-stream.d.ts +60 -0
- package/dist/server/app-ssr-stream.js +408 -0
- package/dist/server/app-static-generation.d.ts +15 -0
- package/dist/server/app-static-generation.js +19 -0
- package/dist/server/app-visited-response-cache.d.ts +23 -0
- package/dist/server/app-visited-response-cache.js +19 -0
- package/dist/server/artifact-compatibility.d.ts +54 -0
- package/dist/server/artifact-compatibility.js +91 -0
- package/dist/server/before-interactive-head.d.ts +17 -0
- package/dist/server/before-interactive-head.js +35 -0
- package/dist/server/cache-control.d.ts +37 -0
- package/dist/server/cache-control.js +56 -0
- package/dist/server/cache-headers.d.ts +6 -0
- package/dist/server/cache-headers.js +17 -0
- package/dist/server/cache-proof.d.ts +364 -0
- package/dist/server/cache-proof.js +794 -0
- package/dist/server/client-reuse-manifest.d.ts +104 -0
- package/dist/server/client-reuse-manifest.js +209 -0
- package/dist/server/client-trace-metadata.d.ts +30 -0
- package/dist/server/client-trace-metadata.js +81 -0
- package/dist/server/cookie-utils.d.ts +12 -0
- package/dist/server/cookie-utils.js +18 -0
- package/dist/server/csp.d.ts +10 -0
- package/dist/server/csp.js +41 -0
- package/dist/server/default-global-error-module.d.ts +19 -0
- package/dist/server/default-global-error-module.js +18 -0
- package/dist/server/default-not-found-module.d.ts +19 -0
- package/dist/server/default-not-found-module.js +18 -0
- package/dist/server/defer-until-stream-consumed.d.ts +7 -0
- package/dist/server/defer-until-stream-consumed.js +34 -0
- package/dist/server/dev-error-overlay-store.d.ts +39 -0
- package/dist/server/dev-error-overlay-store.js +86 -0
- package/dist/server/dev-error-overlay.d.ts +51 -0
- package/dist/server/dev-error-overlay.js +1341 -0
- package/dist/server/dev-initial-server-error.d.ts +9 -0
- package/dist/server/dev-initial-server-error.js +26 -0
- package/dist/server/dev-lockfile.d.ts +109 -0
- package/dist/server/dev-lockfile.js +179 -0
- package/dist/server/dev-module-runner.d.ts +30 -0
- package/dist/server/dev-module-runner.js +91 -0
- package/dist/server/dev-origin-check.d.ts +62 -0
- package/dist/server/dev-origin-check.js +156 -0
- package/dist/server/dev-route-files.d.ts +6 -0
- package/dist/server/dev-route-files.js +71 -0
- package/dist/server/dev-server.d.ts +58 -0
- package/dist/server/dev-server.js +1114 -0
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
- package/dist/server/dev-stack-sourcemap.d.ts +43 -0
- package/dist/server/dev-stack-sourcemap.js +443 -0
- package/dist/server/document-initial-head.d.ts +6 -0
- package/dist/server/document-initial-head.js +33 -0
- package/dist/server/edge-api-runtime.d.ts +4 -0
- package/dist/server/edge-api-runtime.js +6 -0
- package/dist/server/file-based-metadata.d.ts +29 -0
- package/dist/server/file-based-metadata.js +401 -0
- package/dist/server/headers.d.ts +114 -0
- package/dist/server/headers.js +136 -0
- package/dist/server/html.d.ts +28 -0
- package/dist/server/html.js +41 -0
- package/dist/server/http-error-responses.d.ts +91 -0
- package/dist/server/http-error-responses.js +105 -0
- package/dist/server/hybrid-route-priority.d.ts +22 -0
- package/dist/server/hybrid-route-priority.js +33 -0
- package/dist/server/image-optimization.d.ts +130 -0
- package/dist/server/image-optimization.js +247 -0
- package/dist/server/implicit-tags.d.ts +6 -0
- package/dist/server/implicit-tags.js +44 -0
- package/dist/server/instrumentation-runtime.d.ts +49 -0
- package/dist/server/instrumentation-runtime.js +35 -0
- package/dist/server/instrumentation.d.ts +85 -0
- package/dist/server/instrumentation.js +130 -0
- package/dist/server/isr-cache.d.ts +127 -0
- package/dist/server/isr-cache.js +282 -0
- package/dist/server/isr-decision.d.ts +79 -0
- package/dist/server/isr-decision.js +70 -0
- package/dist/server/metadata-route-build-data.d.ts +24 -0
- package/dist/server/metadata-route-build-data.js +148 -0
- package/dist/server/metadata-route-response.d.ts +16 -0
- package/dist/server/metadata-route-response.js +205 -0
- package/dist/server/metadata-routes.d.ts +139 -0
- package/dist/server/metadata-routes.js +433 -0
- package/dist/server/middleware-matcher.d.ts +14 -0
- package/dist/server/middleware-matcher.js +111 -0
- package/dist/server/middleware-request-headers.d.ts +11 -0
- package/dist/server/middleware-request-headers.js +65 -0
- package/dist/server/middleware-response-headers.d.ts +12 -0
- package/dist/server/middleware-response-headers.js +42 -0
- package/dist/server/middleware-runtime.d.ts +67 -0
- package/dist/server/middleware-runtime.js +240 -0
- package/dist/server/middleware.d.ts +62 -0
- package/dist/server/middleware.js +114 -0
- package/dist/server/navigation-planner.d.ts +308 -0
- package/dist/server/navigation-planner.js +831 -0
- package/dist/server/navigation-trace.d.ts +68 -0
- package/dist/server/navigation-trace.js +71 -0
- package/dist/server/next-error-digest.d.ts +44 -0
- package/dist/server/next-error-digest.js +40 -0
- package/dist/server/normalize-path.d.ts +38 -0
- package/dist/server/normalize-path.js +70 -0
- package/dist/server/open-redirect.d.ts +12 -0
- package/dist/server/open-redirect.js +21 -0
- package/dist/server/operation-token.d.ts +40 -0
- package/dist/server/operation-token.js +85 -0
- package/dist/server/otel-tracer-extension.d.ts +45 -0
- package/dist/server/otel-tracer-extension.js +89 -0
- package/dist/server/pages-api-route.d.ts +83 -0
- package/dist/server/pages-api-route.js +75 -0
- package/dist/server/pages-asset-tags.d.ts +78 -0
- package/dist/server/pages-asset-tags.js +126 -0
- package/dist/server/pages-body-parser-config.d.ts +59 -0
- package/dist/server/pages-body-parser-config.js +77 -0
- package/dist/server/pages-data-route.d.ts +121 -0
- package/dist/server/pages-data-route.js +157 -0
- package/dist/server/pages-default-404.d.ts +30 -0
- package/dist/server/pages-default-404.js +38 -0
- package/dist/server/pages-dev-module-url.d.ts +4 -0
- package/dist/server/pages-dev-module-url.js +15 -0
- package/dist/server/pages-document-initial-props.d.ts +77 -0
- package/dist/server/pages-document-initial-props.js +109 -0
- package/dist/server/pages-get-initial-props.d.ts +67 -0
- package/dist/server/pages-get-initial-props.js +92 -0
- package/dist/server/pages-i18n.d.ts +106 -0
- package/dist/server/pages-i18n.js +183 -0
- package/dist/server/pages-media-type.d.ts +15 -0
- package/dist/server/pages-media-type.js +24 -0
- package/dist/server/pages-node-compat.d.ts +55 -0
- package/dist/server/pages-node-compat.js +235 -0
- package/dist/server/pages-page-data.d.ts +223 -0
- package/dist/server/pages-page-data.js +484 -0
- package/dist/server/pages-page-handler.d.ts +100 -0
- package/dist/server/pages-page-handler.js +403 -0
- package/dist/server/pages-page-method.d.ts +47 -0
- package/dist/server/pages-page-method.js +17 -0
- package/dist/server/pages-page-response.d.ts +138 -0
- package/dist/server/pages-page-response.js +285 -0
- package/dist/server/pages-readiness.d.ts +36 -0
- package/dist/server/pages-readiness.js +21 -0
- package/dist/server/pages-request-pipeline.d.ts +116 -0
- package/dist/server/pages-request-pipeline.js +311 -0
- package/dist/server/pages-revalidate.d.ts +15 -0
- package/dist/server/pages-revalidate.js +19 -0
- package/dist/server/pages-serializable-props.d.ts +24 -0
- package/dist/server/pages-serializable-props.js +67 -0
- package/dist/server/pregenerated-concrete-paths.d.ts +16 -0
- package/dist/server/pregenerated-concrete-paths.js +61 -0
- package/dist/server/prerender-manifest.d.ts +33 -0
- package/dist/server/prerender-manifest.js +54 -0
- package/dist/server/prerender-route-params.d.ts +23 -0
- package/dist/server/prerender-route-params.js +113 -0
- package/dist/server/prerender-work-unit-setup.d.ts +6 -0
- package/dist/server/prerender-work-unit-setup.js +28 -0
- package/dist/server/prod-server.d.ts +148 -0
- package/dist/server/prod-server.js +1136 -0
- package/dist/server/proxy-trust.d.ts +40 -0
- package/dist/server/proxy-trust.js +68 -0
- package/dist/server/request-log.d.ts +39 -0
- package/dist/server/request-log.js +56 -0
- package/dist/server/request-pipeline.d.ts +187 -0
- package/dist/server/request-pipeline.js +447 -0
- package/dist/server/rsc-stream-hints.d.ts +10 -0
- package/dist/server/rsc-stream-hints.js +41 -0
- package/dist/server/seed-cache.d.ts +29 -0
- package/dist/server/seed-cache.js +125 -0
- package/dist/server/server-action-not-found.d.ts +21 -0
- package/dist/server/server-action-not-found.js +62 -0
- package/dist/server/server-globals.d.ts +4 -0
- package/dist/server/server-globals.js +35 -0
- package/dist/server/skip-cache-proof.d.ts +61 -0
- package/dist/server/skip-cache-proof.js +168 -0
- package/dist/server/socket-error-backstop.d.ts +34 -0
- package/dist/server/socket-error-backstop.js +200 -0
- package/dist/server/static-file-cache.d.ts +56 -0
- package/dist/server/static-file-cache.js +231 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
- package/dist/server/static-layout-client-reuse-proof.js +33 -0
- package/dist/server/streaming-metadata.d.ts +4 -0
- package/dist/server/streaming-metadata.js +8 -0
- package/dist/server/worker-utils.d.ts +7 -0
- package/dist/server/worker-utils.js +99 -0
- package/dist/shims/amp.d.ts +19 -0
- package/dist/shims/amp.js +23 -0
- package/dist/shims/app-router-scroll-state.d.ts +15 -0
- package/dist/shims/app-router-scroll-state.js +61 -0
- package/dist/shims/app-router-scroll.d.ts +29 -0
- package/dist/shims/app-router-scroll.js +141 -0
- package/dist/shims/app.d.ts +42 -0
- package/dist/shims/app.js +48 -0
- package/dist/shims/before-interactive-context.d.ts +40 -0
- package/dist/shims/before-interactive-context.js +8 -0
- package/dist/shims/cache-for-request.d.ts +57 -0
- package/dist/shims/cache-for-request.js +72 -0
- package/dist/shims/cache-handler.d.ts +106 -0
- package/dist/shims/cache-handler.js +176 -0
- package/dist/shims/cache-request-state.d.ts +47 -0
- package/dist/shims/cache-request-state.js +126 -0
- package/dist/shims/cache-runtime.d.ts +83 -0
- package/dist/shims/cache-runtime.js +452 -0
- package/dist/shims/cache.d.ts +145 -0
- package/dist/shims/cache.js +401 -0
- package/dist/shims/cdn-cache.d.ts +125 -0
- package/dist/shims/cdn-cache.js +100 -0
- package/dist/shims/client-hook-error.d.ts +13 -0
- package/dist/shims/client-hook-error.js +17 -0
- package/dist/shims/client-locale.d.ts +14 -0
- package/dist/shims/client-locale.js +11 -0
- package/dist/shims/client-only.d.ts +1 -0
- package/dist/shims/client-only.js +1 -0
- package/dist/shims/compat-router.d.ts +16 -0
- package/dist/shims/compat-router.js +25 -0
- package/dist/shims/config.d.ts +28 -0
- package/dist/shims/config.js +21 -0
- package/dist/shims/constants.d.ts +130 -0
- package/dist/shims/constants.js +167 -0
- package/dist/shims/default-global-error.d.ts +31 -0
- package/dist/shims/default-global-error.js +179 -0
- package/dist/shims/default-not-found.d.ts +11 -0
- package/dist/shims/default-not-found.js +59 -0
- package/dist/shims/document.d.ts +92 -0
- package/dist/shims/document.js +76 -0
- package/dist/shims/dynamic-preload-chunks.d.ts +8 -0
- package/dist/shims/dynamic-preload-chunks.js +79 -0
- package/dist/shims/dynamic.d.ts +35 -0
- package/dist/shims/dynamic.js +204 -0
- package/dist/shims/error-boundary-navigation.d.ts +7 -0
- package/dist/shims/error-boundary-navigation.js +44 -0
- package/dist/shims/error-boundary.d.ts +155 -0
- package/dist/shims/error-boundary.js +342 -0
- package/dist/shims/error.d.ts +31 -0
- package/dist/shims/error.js +123 -0
- package/dist/shims/error.react-server.d.ts +9 -0
- package/dist/shims/error.react-server.js +6 -0
- package/dist/shims/fetch-cache.d.ts +136 -0
- package/dist/shims/fetch-cache.js +766 -0
- package/dist/shims/font-google-base.d.ts +83 -0
- package/dist/shims/font-google-base.js +290 -0
- package/dist/shims/font-google.d.ts +2 -0
- package/dist/shims/font-google.js +2 -0
- package/dist/shims/font-local.d.ts +50 -0
- package/dist/shims/font-local.js +195 -0
- package/dist/shims/font-utils.d.ts +56 -0
- package/dist/shims/font-utils.js +107 -0
- package/dist/shims/form.d.ts +19 -0
- package/dist/shims/form.js +236 -0
- package/dist/shims/hash-scroll.d.ts +10 -0
- package/dist/shims/hash-scroll.js +47 -0
- package/dist/shims/head-state.d.ts +16 -0
- package/dist/shims/head-state.js +43 -0
- package/dist/shims/head.d.ts +73 -0
- package/dist/shims/head.js +340 -0
- package/dist/shims/headers.d.ts +253 -0
- package/dist/shims/headers.js +754 -0
- package/dist/shims/i18n-context.d.ts +22 -0
- package/dist/shims/i18n-context.js +42 -0
- package/dist/shims/i18n-state.d.ts +14 -0
- package/dist/shims/i18n-state.js +38 -0
- package/dist/shims/image-config.d.ts +45 -0
- package/dist/shims/image-config.js +85 -0
- package/dist/shims/image.d.ts +55 -0
- package/dist/shims/image.js +582 -0
- package/dist/shims/internal/als-registry.d.ts +14 -0
- package/dist/shims/internal/als-registry.js +80 -0
- package/dist/shims/internal/api-utils.d.ts +14 -0
- package/dist/shims/internal/api-utils.js +1 -0
- package/dist/shims/internal/app-page-props-cache-key.d.ts +5 -0
- package/dist/shims/internal/app-page-props-cache-key.js +16 -0
- package/dist/shims/internal/app-route-detection.d.ts +39 -0
- package/dist/shims/internal/app-route-detection.js +62 -0
- package/dist/shims/internal/app-router-context.d.ts +31 -0
- package/dist/shims/internal/app-router-context.js +28 -0
- package/dist/shims/internal/cookie-serialize.d.ts +45 -0
- package/dist/shims/internal/cookie-serialize.js +49 -0
- package/dist/shims/internal/cookies.d.ts +2 -0
- package/dist/shims/internal/cookies.js +2 -0
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +31 -0
- package/dist/shims/internal/hybrid-client-route-owner.js +143 -0
- package/dist/shims/internal/interpolate-as.d.ts +25 -0
- package/dist/shims/internal/interpolate-as.js +196 -0
- package/dist/shims/internal/link-status-registry.d.ts +43 -0
- package/dist/shims/internal/link-status-registry.js +42 -0
- package/dist/shims/internal/make-hanging-promise.d.ts +15 -0
- package/dist/shims/internal/make-hanging-promise.js +44 -0
- package/dist/shims/internal/navigation-untracked.d.ts +35 -0
- package/dist/shims/internal/navigation-untracked.js +56 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +54 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js +121 -0
- package/dist/shims/internal/pages-data-target.d.ts +62 -0
- package/dist/shims/internal/pages-data-target.js +98 -0
- package/dist/shims/internal/pages-data-url.d.ts +41 -0
- package/dist/shims/internal/pages-data-url.js +71 -0
- package/dist/shims/internal/pages-router-accessor.d.ts +19 -0
- package/dist/shims/internal/pages-router-accessor.js +13 -0
- package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
- package/dist/shims/internal/route-pattern-for-warning.js +40 -0
- package/dist/shims/internal/router-context.d.ts +7 -0
- package/dist/shims/internal/router-context.js +13 -0
- package/dist/shims/internal/utils.d.ts +52 -0
- package/dist/shims/internal/utils.js +27 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +30 -0
- package/dist/shims/internal/work-unit-async-storage.js +17 -0
- package/dist/shims/layout-segment-context.d.ts +24 -0
- package/dist/shims/layout-segment-context.js +39 -0
- package/dist/shims/legacy-image.d.ts +41 -0
- package/dist/shims/legacy-image.js +49 -0
- package/dist/shims/link-prefetch.d.ts +41 -0
- package/dist/shims/link-prefetch.js +43 -0
- package/dist/shims/link.d.ts +102 -0
- package/dist/shims/link.js +687 -0
- package/dist/shims/metadata.d.ts +285 -0
- package/dist/shims/metadata.js +820 -0
- package/dist/shims/navigation-context-state.d.ts +40 -0
- package/dist/shims/navigation-context-state.js +116 -0
- package/dist/shims/navigation-errors.d.ts +55 -0
- package/dist/shims/navigation-errors.js +110 -0
- package/dist/shims/navigation-server.d.ts +3 -0
- package/dist/shims/navigation-server.js +3 -0
- package/dist/shims/navigation-state.d.ts +25 -0
- package/dist/shims/navigation-state.js +66 -0
- package/dist/shims/navigation.d.ts +286 -0
- package/dist/shims/navigation.js +1206 -0
- package/dist/shims/navigation.react-server.d.ts +14 -0
- package/dist/shims/navigation.react-server.js +32 -0
- package/dist/shims/offline.d.ts +4 -0
- package/dist/shims/offline.js +15 -0
- package/dist/shims/og.d.ts +17 -0
- package/dist/shims/og.js +48 -0
- package/dist/shims/pages-router-runtime.d.ts +12 -0
- package/dist/shims/pages-router-runtime.js +24 -0
- package/dist/shims/ppr-fallback-shell.d.ts +33 -0
- package/dist/shims/ppr-fallback-shell.js +170 -0
- package/dist/shims/readonly-url-search-params.d.ts +13 -0
- package/dist/shims/readonly-url-search-params.js +26 -0
- package/dist/shims/request-context.d.ts +58 -0
- package/dist/shims/request-context.js +45 -0
- package/dist/shims/request-state-types.d.ts +12 -0
- package/dist/shims/request-state-types.js +1 -0
- package/dist/shims/root-params.d.ts +12 -0
- package/dist/shims/root-params.js +30 -0
- package/dist/shims/router-state.d.ts +32 -0
- package/dist/shims/router-state.js +39 -0
- package/dist/shims/router.d.ts +192 -0
- package/dist/shims/router.js +1786 -0
- package/dist/shims/script-nonce-context.d.ts +11 -0
- package/dist/shims/script-nonce-context.js +23 -0
- package/dist/shims/script.d.ts +43 -0
- package/dist/shims/script.js +370 -0
- package/dist/shims/server-only.d.ts +1 -0
- package/dist/shims/server-only.js +1 -0
- package/dist/shims/server.d.ts +323 -0
- package/dist/shims/server.js +729 -0
- package/dist/shims/slot.d.ts +45 -0
- package/dist/shims/slot.js +230 -0
- package/dist/shims/thenable-params.d.ts +11 -0
- package/dist/shims/thenable-params.js +176 -0
- package/dist/shims/unified-request-context.d.ts +68 -0
- package/dist/shims/unified-request-context.js +86 -0
- package/dist/shims/unrecognized-action-error.d.ts +34 -0
- package/dist/shims/unrecognized-action-error.js +39 -0
- package/dist/shims/url-safety.d.ts +34 -0
- package/dist/shims/url-safety.js +70 -0
- package/dist/shims/url-utils.d.ts +51 -0
- package/dist/shims/url-utils.js +156 -0
- package/dist/shims/use-merged-ref.d.ts +6 -0
- package/dist/shims/use-merged-ref.js +38 -0
- package/dist/shims/web-vitals.d.ts +8 -0
- package/dist/shims/web-vitals.js +22 -0
- package/dist/typegen.d.ts +9 -0
- package/dist/typegen.js +228 -0
- package/dist/utils/asset-prefix.d.ts +96 -0
- package/dist/utils/asset-prefix.js +122 -0
- package/dist/utils/base-path.d.ts +31 -0
- package/dist/utils/base-path.js +45 -0
- package/dist/utils/built-asset-url.d.ts +4 -0
- package/dist/utils/built-asset-url.js +11 -0
- package/dist/utils/cache-control-metadata.d.ts +4 -0
- package/dist/utils/cache-control-metadata.js +12 -0
- package/dist/utils/client-build-manifest.d.ts +21 -0
- package/dist/utils/client-build-manifest.js +87 -0
- package/dist/utils/client-entry-manifest.d.ts +11 -0
- package/dist/utils/client-entry-manifest.js +29 -0
- package/dist/utils/client-runtime-metadata.d.ts +45 -0
- package/dist/utils/client-runtime-metadata.js +63 -0
- package/dist/utils/commonjs-loader.d.ts +16 -0
- package/dist/utils/commonjs-loader.js +100 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -0
- package/dist/utils/deployment-id.d.ts +8 -0
- package/dist/utils/deployment-id.js +22 -0
- package/dist/utils/dev-error-recovery-event.d.ts +4 -0
- package/dist/utils/dev-error-recovery-event.js +4 -0
- package/dist/utils/domain-locale.d.ts +26 -0
- package/dist/utils/domain-locale.js +50 -0
- package/dist/utils/encode-cache-tag.d.ts +30 -0
- package/dist/utils/encode-cache-tag.js +36 -0
- package/dist/utils/error-cause.d.ts +4 -0
- package/dist/utils/error-cause.js +95 -0
- package/dist/utils/has-trailing-comma.d.ts +24 -0
- package/dist/utils/has-trailing-comma.js +62 -0
- package/dist/utils/hash.d.ts +24 -0
- package/dist/utils/hash.js +55 -0
- package/dist/utils/html-limited-bots.d.ts +21 -0
- package/dist/utils/html-limited-bots.js +35 -0
- package/dist/utils/lazy-chunks.d.ts +59 -0
- package/dist/utils/lazy-chunks.js +112 -0
- package/dist/utils/manifest-paths.d.ts +30 -0
- package/dist/utils/manifest-paths.js +66 -0
- package/dist/utils/mdx-scan.d.ts +9 -0
- package/dist/utils/mdx-scan.js +34 -0
- package/dist/utils/navigation-signal.d.ts +4 -0
- package/dist/utils/navigation-signal.js +12 -0
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/parse-cookie.d.ts +13 -0
- package/dist/utils/parse-cookie.js +52 -0
- package/dist/utils/path.d.ts +22 -0
- package/dist/utils/path.js +30 -0
- package/dist/utils/prerender-output-paths.d.ts +14 -0
- package/dist/utils/prerender-output-paths.js +22 -0
- package/dist/utils/project.d.ts +76 -0
- package/dist/utils/project.js +213 -0
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +4 -0
- package/dist/utils/public-routes.js +48 -0
- package/dist/utils/query.d.ts +49 -0
- package/dist/utils/query.js +122 -0
- package/dist/utils/record.d.ts +4 -0
- package/dist/utils/record.js +6 -0
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +17 -0
- package/dist/utils/safe-json-file.js +23 -0
- package/dist/utils/sorted-array.d.ts +8 -0
- package/dist/utils/sorted-array.js +20 -0
- package/dist/utils/text-stream.d.ts +28 -0
- package/dist/utils/text-stream.js +64 -0
- package/dist/utils/vinext-root.d.ts +23 -0
- package/dist/utils/vinext-root.js +29 -0
- package/dist/utils/virtual-module.d.ts +5 -0
- package/dist/utils/virtual-module.js +0 -0
- package/dist/utils/vite-version.d.ts +21 -0
- package/dist/utils/vite-version.js +42 -0
- package/package.json +145 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { NextI18nConfig } from "../config/next-config.js";
|
|
2
|
+
import { Route } from "../routing/pages-router.js";
|
|
3
|
+
import { ExecutionContextLike } from "../shims/request-context.js";
|
|
4
|
+
import { PagesReqResRequest, PagesReqResResponse, PagesRequestQuery } from "./pages-node-compat.js";
|
|
5
|
+
|
|
6
|
+
//#region src/server/pages-api-route.d.ts
|
|
7
|
+
type PagesApiRouteConfig = {
|
|
8
|
+
runtime?: string;
|
|
9
|
+
/**
|
|
10
|
+
* `export const config = { api: { bodyParser: false | { sizeLimit: '4mb' } } }`
|
|
11
|
+
* — controls whether vinext parses the request body for the route handler.
|
|
12
|
+
*
|
|
13
|
+
* `bodyParser: false` is critical for webhook handlers (Stripe, GitHub,
|
|
14
|
+
* Slack, etc.) that need to read the raw bytes to verify an HMAC
|
|
15
|
+
* signature. With it set, `req.body` is left undefined and the raw stream
|
|
16
|
+
* remains available through the Node-readable request object.
|
|
17
|
+
*
|
|
18
|
+
* @see https://nextjs.org/docs/pages/building-your-application/routing/api-routes#custom-config
|
|
19
|
+
*/
|
|
20
|
+
api?: {
|
|
21
|
+
bodyParser?: boolean | {
|
|
22
|
+
sizeLimit?: string | number;
|
|
23
|
+
};
|
|
24
|
+
responseLimit?: boolean | string | number;
|
|
25
|
+
/**
|
|
26
|
+
* `externalResolver: true` declares that the response is sent by an
|
|
27
|
+
* external resolver (e.g. express/connect proxy middleware) that may
|
|
28
|
+
* complete after the handler's promise settles. Next.js uses it to
|
|
29
|
+
* suppress the "API resolved without sending a response" dev warning;
|
|
30
|
+
* vinext additionally uses it to suppress the auto-`end()` safety net,
|
|
31
|
+
* which would otherwise resolve an empty response before the external
|
|
32
|
+
* resolver writes.
|
|
33
|
+
*
|
|
34
|
+
* @see https://nextjs.org/docs/pages/building-your-application/routing/api-routes#custom-config
|
|
35
|
+
*/
|
|
36
|
+
externalResolver?: boolean;
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
type PagesNodeApiRouteHandler = (req: PagesReqResRequest, res: PagesReqResResponse) => unknown;
|
|
40
|
+
type PagesEdgeApiRouteHandler = (request: Request) => Response | Promise<Response>;
|
|
41
|
+
type PagesApiRouteModule = {
|
|
42
|
+
/**
|
|
43
|
+
* `export const config = { runtime: 'edge' }` — historical Pages Router form.
|
|
44
|
+
*/
|
|
45
|
+
config?: PagesApiRouteConfig;
|
|
46
|
+
/**
|
|
47
|
+
* `export const runtime = 'edge'` — bare export form. Next.js resolves the
|
|
48
|
+
* effective runtime as `config.runtime ?? config.config?.runtime`, so a
|
|
49
|
+
* top-level `runtime` export takes precedence over the nested config form.
|
|
50
|
+
*
|
|
51
|
+
* @see https://github.com/vercel/next.js/blob/canary/packages/next/src/build/analysis/get-page-static-info.ts
|
|
52
|
+
*/
|
|
53
|
+
runtime?: string;
|
|
54
|
+
default?: PagesNodeApiRouteHandler | PagesEdgeApiRouteHandler;
|
|
55
|
+
};
|
|
56
|
+
type PagesApiRouteMatch = {
|
|
57
|
+
params: PagesRequestQuery;
|
|
58
|
+
route: Pick<Route, "pattern"> & {
|
|
59
|
+
module: PagesApiRouteModule;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
type HandlePagesApiRouteOptions = {
|
|
63
|
+
/**
|
|
64
|
+
* Per-request Cloudflare Workers `ExecutionContext`. When provided, the
|
|
65
|
+
* API route runs inside `runWithExecutionContext(ctx, ...)` so any
|
|
66
|
+
* `after()` (or other shim) call inside the handler can reach
|
|
67
|
+
* `ctx.waitUntil()` via the ALS and keep the isolate alive past the
|
|
68
|
+
* response. Omit on Node.js dev where no Workers lifecycle exists.
|
|
69
|
+
*/
|
|
70
|
+
ctx?: ExecutionContextLike;
|
|
71
|
+
match: PagesApiRouteMatch | null;
|
|
72
|
+
reportRequestError?: (error: Error, routePattern: string) => void | Promise<void>;
|
|
73
|
+
request: Request;
|
|
74
|
+
url: string;
|
|
75
|
+
nextConfig?: {
|
|
76
|
+
basePath?: string;
|
|
77
|
+
i18n?: NextI18nConfig | null;
|
|
78
|
+
trailingSlash?: boolean;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
declare function handlePagesApiRoute(options: HandlePagesApiRouteOptions): Promise<Response>;
|
|
82
|
+
//#endregion
|
|
83
|
+
export { PagesApiRouteMatch, handlePagesApiRoute };
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import "./server-globals.js";
|
|
2
|
+
import { runWithExecutionContext } from "../shims/request-context.js";
|
|
3
|
+
import { NextRequest } from "../shims/server.js";
|
|
4
|
+
import { internalServerErrorResponse } from "./http-error-responses.js";
|
|
5
|
+
import { cloneRequestWithUrl } from "./request-pipeline.js";
|
|
6
|
+
import { mergeRouteParamsIntoQuery, parseQueryString, urlQueryToSearchParams } from "../utils/query.js";
|
|
7
|
+
import { PagesBodyParseError } from "./pages-media-type.js";
|
|
8
|
+
import { isEdgeApiRuntime } from "./edge-api-runtime.js";
|
|
9
|
+
import { resolveBodyParserConfig } from "./pages-body-parser-config.js";
|
|
10
|
+
import { createPagesReqRes, parsePagesApiBody } from "./pages-node-compat.js";
|
|
11
|
+
//#region src/server/pages-api-route.ts
|
|
12
|
+
function resolveModuleRuntime(module) {
|
|
13
|
+
return module.runtime ?? module.config?.runtime;
|
|
14
|
+
}
|
|
15
|
+
function buildPagesApiQuery(url, params) {
|
|
16
|
+
return mergeRouteParamsIntoQuery(parseQueryString(url), params);
|
|
17
|
+
}
|
|
18
|
+
function createEdgeApiRequest(request, url, params) {
|
|
19
|
+
const resolvedUrl = new URL(request.url);
|
|
20
|
+
resolvedUrl.search = urlQueryToSearchParams(buildPagesApiQuery(url, params)).toString();
|
|
21
|
+
const resolvedUrlString = resolvedUrl.toString();
|
|
22
|
+
return resolvedUrlString === request.url ? request : cloneRequestWithUrl(request, resolvedUrlString);
|
|
23
|
+
}
|
|
24
|
+
function isEdgeApiRouteModule(module) {
|
|
25
|
+
return typeof module.default === "function" && isEdgeApiRuntime(resolveModuleRuntime(module));
|
|
26
|
+
}
|
|
27
|
+
function isNodeApiRouteModule(module) {
|
|
28
|
+
return typeof module.default === "function" && !isEdgeApiRuntime(resolveModuleRuntime(module));
|
|
29
|
+
}
|
|
30
|
+
async function handlePagesApiRoute(options) {
|
|
31
|
+
if (options.ctx) return runWithExecutionContext(options.ctx, () => _handlePagesApiRoute(options));
|
|
32
|
+
return _handlePagesApiRoute(options);
|
|
33
|
+
}
|
|
34
|
+
async function _handlePagesApiRoute(options) {
|
|
35
|
+
if (!options.match) return new Response("404 - API route not found", { status: 404 });
|
|
36
|
+
const { route, params } = options.match;
|
|
37
|
+
try {
|
|
38
|
+
if (isEdgeApiRouteModule(route.module)) {
|
|
39
|
+
const nextRequest = new NextRequest(createEdgeApiRequest(options.request, options.url, params), options.nextConfig ? { nextConfig: {
|
|
40
|
+
basePath: options.nextConfig.basePath,
|
|
41
|
+
i18n: options.nextConfig.i18n ?? void 0,
|
|
42
|
+
trailingSlash: options.nextConfig.trailingSlash
|
|
43
|
+
} } : void 0);
|
|
44
|
+
const response = await route.module.default(nextRequest);
|
|
45
|
+
if (response instanceof Response) return response;
|
|
46
|
+
throw new Error("Edge API route did not return a Response");
|
|
47
|
+
}
|
|
48
|
+
if (!isNodeApiRouteModule(route.module)) return new Response("API route does not export a default function", { status: 500 });
|
|
49
|
+
const query = buildPagesApiQuery(options.url, params);
|
|
50
|
+
const bodyParserConfig = resolveBodyParserConfig(route.module.config);
|
|
51
|
+
const { req, res, responsePromise } = createPagesReqRes({
|
|
52
|
+
body: bodyParserConfig.enabled ? await parsePagesApiBody(options.request, bodyParserConfig.sizeLimit) : void 0,
|
|
53
|
+
query,
|
|
54
|
+
request: options.request,
|
|
55
|
+
url: options.url
|
|
56
|
+
});
|
|
57
|
+
let resWasPiped = false;
|
|
58
|
+
res.once("pipe", () => {
|
|
59
|
+
resWasPiped = true;
|
|
60
|
+
});
|
|
61
|
+
const externalResolver = route.module.config?.api?.externalResolver || false;
|
|
62
|
+
await route.module.default(req, res);
|
|
63
|
+
if (!externalResolver && !resWasPiped && !res.headersSent) res.end();
|
|
64
|
+
return await responsePromise;
|
|
65
|
+
} catch (error) {
|
|
66
|
+
if (error instanceof PagesBodyParseError) return new Response(error.message, {
|
|
67
|
+
status: error.statusCode,
|
|
68
|
+
statusText: error.message
|
|
69
|
+
});
|
|
70
|
+
options.reportRequestError?.(error instanceof Error ? error : new Error(String(error)), route.pattern);
|
|
71
|
+
return internalServerErrorResponse();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
//#endregion
|
|
75
|
+
export { handlePagesApiRoute };
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
//#region src/server/pages-asset-tags.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Pages Router SSR asset-tag helpers.
|
|
4
|
+
*
|
|
5
|
+
* Builds the `<link rel="modulepreload">`, `<link rel="stylesheet">`, and
|
|
6
|
+
* `<script type="module">` tags injected into the SSR HTML response.
|
|
7
|
+
*
|
|
8
|
+
* Extracted from `entries/pages-server-entry.ts` so the logic is
|
|
9
|
+
* unit-testable and lives in a normal typed module rather than a codegen
|
|
10
|
+
* template string.
|
|
11
|
+
*/
|
|
12
|
+
/**
|
|
13
|
+
* Resolve the effective SSR manifest: prefer the caller-supplied object (dev
|
|
14
|
+
* or test) and fall back to the Worker-embedded `globalThis.__VINEXT_SSR_MANIFEST__`
|
|
15
|
+
* injected by `vinext:cloudflare-build` at build time.
|
|
16
|
+
*/
|
|
17
|
+
declare function resolveSsrManifest(manifest: Record<string, string[]> | null | undefined): Record<string, string[]> | null;
|
|
18
|
+
/**
|
|
19
|
+
* Look up the asset-file list for a module ID in the SSR manifest.
|
|
20
|
+
*
|
|
21
|
+
* The manifest keys may use relative paths while callers supply absolute
|
|
22
|
+
* paths, so a suffix-match fallback is used when an exact-key lookup fails.
|
|
23
|
+
*/
|
|
24
|
+
declare function getManifestFilesForModule(manifest: Record<string, string[]> | null | undefined, moduleId: string | null | undefined): string[] | null;
|
|
25
|
+
/**
|
|
26
|
+
* Find the first `.js` file in the manifest for `moduleId` and return the URL it
|
|
27
|
+
* is actually SERVED from. Used to resolve the client-navigation / hydration URL
|
|
28
|
+
* for the matched page or the `_app` module (it is `import()`ed on the client),
|
|
29
|
+
* so it must point at the served location: `assetPrefix` replaces `basePath` for
|
|
30
|
+
* asset URLs. SSR-manifest values are base-anchored; re-anchor under any
|
|
31
|
+
* configured `assetPrefix` (default `""` keeps the legacy `"/" + file`).
|
|
32
|
+
*/
|
|
33
|
+
declare function resolveClientModuleUrl(manifest: Record<string, string[]> | null | undefined, moduleId: string | null | undefined, basePath?: string, assetPrefix?: string, _deploymentId?: string): string | undefined;
|
|
34
|
+
type CollectAssetTagsOptions = {
|
|
35
|
+
/**
|
|
36
|
+
* SSR manifest mapping module file paths to their associated asset list.
|
|
37
|
+
* When empty/null the Worker-embedded `__VINEXT_SSR_MANIFEST__` is used.
|
|
38
|
+
*/
|
|
39
|
+
manifest: Record<string, string[]> | null | undefined;
|
|
40
|
+
/**
|
|
41
|
+
* Module IDs whose assets should be injected (page + `_app`). When empty
|
|
42
|
+
* all manifest assets are injected.
|
|
43
|
+
*/
|
|
44
|
+
moduleIds: (string | null | undefined)[]; /** Script nonce for CSP. */
|
|
45
|
+
scriptNonce?: string;
|
|
46
|
+
/**
|
|
47
|
+
* When `false` (default), page scripts are emitted with the `defer`
|
|
48
|
+
* attribute mirroring Next.js's `experimental.disableOptimizedLoading`
|
|
49
|
+
* default.
|
|
50
|
+
*/
|
|
51
|
+
disableOptimizedLoading: boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Configured `basePath` / `assetPrefix`. SSR-manifest values are base-anchored
|
|
54
|
+
* (needed for the lazy-chunk membership test), but the EMITTED href must point
|
|
55
|
+
* where the asset is actually served — `assetPrefix` replaces `basePath` for
|
|
56
|
+
* asset URLs. Default `""` (both unset) keeps the legacy `"/" + value` href.
|
|
57
|
+
*/
|
|
58
|
+
basePath?: string;
|
|
59
|
+
assetPrefix?: string;
|
|
60
|
+
deploymentId?: string;
|
|
61
|
+
};
|
|
62
|
+
/**
|
|
63
|
+
* Build the HTML `<link>` and `<script>` tag string for the SSR response.
|
|
64
|
+
*
|
|
65
|
+
* Mirrors Next.js `_document` behaviour:
|
|
66
|
+
* - CSS files → `<link rel="stylesheet">`.
|
|
67
|
+
* - JS files → `<link rel="modulepreload">` + `<script type="module" defer>`.
|
|
68
|
+
* - Lazy chunks (behind `React.lazy` / `next/dynamic`) are skipped.
|
|
69
|
+
* - The Worker-embedded client-entry bootstrap (`__VINEXT_CLIENT_ENTRY__`) is
|
|
70
|
+
* injected first so hydration starts as early as possible.
|
|
71
|
+
* - Shared framework / vinext runtime chunks are always included alongside
|
|
72
|
+
* page-specific chunks.
|
|
73
|
+
*
|
|
74
|
+
* Extracted from `entries/pages-server-entry.ts`.
|
|
75
|
+
*/
|
|
76
|
+
declare function collectAssetTags(options: CollectAssetTagsOptions): string;
|
|
77
|
+
//#endregion
|
|
78
|
+
export { collectAssetTags, getManifestFilesForModule, resolveClientModuleUrl, resolveSsrManifest };
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { appendDeploymentIdQuery } from "../utils/deployment-id.js";
|
|
2
|
+
import { createNonceAttribute } from "./html.js";
|
|
3
|
+
import { assetServingUrlFromBaseAnchored } from "../utils/manifest-paths.js";
|
|
4
|
+
//#region src/server/pages-asset-tags.ts
|
|
5
|
+
/**
|
|
6
|
+
* Pages Router SSR asset-tag helpers.
|
|
7
|
+
*
|
|
8
|
+
* Builds the `<link rel="modulepreload">`, `<link rel="stylesheet">`, and
|
|
9
|
+
* `<script type="module">` tags injected into the SSR HTML response.
|
|
10
|
+
*
|
|
11
|
+
* Extracted from `entries/pages-server-entry.ts` so the logic is
|
|
12
|
+
* unit-testable and lives in a normal typed module rather than a codegen
|
|
13
|
+
* template string.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Resolve the effective SSR manifest: prefer the caller-supplied object (dev
|
|
17
|
+
* or test) and fall back to the Worker-embedded `globalThis.__VINEXT_SSR_MANIFEST__`
|
|
18
|
+
* injected by `vinext:cloudflare-build` at build time.
|
|
19
|
+
*/
|
|
20
|
+
function resolveSsrManifest(manifest) {
|
|
21
|
+
if (manifest && Object.keys(manifest).length > 0) return manifest;
|
|
22
|
+
return (typeof globalThis !== "undefined" ? globalThis.__VINEXT_SSR_MANIFEST__ : null) ?? null;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Look up the asset-file list for a module ID in the SSR manifest.
|
|
26
|
+
*
|
|
27
|
+
* The manifest keys may use relative paths while callers supply absolute
|
|
28
|
+
* paths, so a suffix-match fallback is used when an exact-key lookup fails.
|
|
29
|
+
*/
|
|
30
|
+
function getManifestFilesForModule(manifest, moduleId) {
|
|
31
|
+
if (!manifest || !moduleId) return null;
|
|
32
|
+
const files = manifest[moduleId];
|
|
33
|
+
if (files) return files;
|
|
34
|
+
for (const key in manifest) if (moduleId.endsWith("/" + key) || moduleId === key) return manifest[key];
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Find the first `.js` file in the manifest for `moduleId` and return the URL it
|
|
39
|
+
* is actually SERVED from. Used to resolve the client-navigation / hydration URL
|
|
40
|
+
* for the matched page or the `_app` module (it is `import()`ed on the client),
|
|
41
|
+
* so it must point at the served location: `assetPrefix` replaces `basePath` for
|
|
42
|
+
* asset URLs. SSR-manifest values are base-anchored; re-anchor under any
|
|
43
|
+
* configured `assetPrefix` (default `""` keeps the legacy `"/" + file`).
|
|
44
|
+
*/
|
|
45
|
+
function resolveClientModuleUrl(manifest, moduleId, basePath = "", assetPrefix = "", _deploymentId) {
|
|
46
|
+
const files = getManifestFilesForModule(resolveSsrManifest(manifest), moduleId);
|
|
47
|
+
if (!files) return void 0;
|
|
48
|
+
for (let i = 0; i < files.length; i++) {
|
|
49
|
+
const file = files[i];
|
|
50
|
+
if (!file || !file.endsWith(".js")) continue;
|
|
51
|
+
return assetServingUrlFromBaseAnchored(file, basePath, assetPrefix);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Build the HTML `<link>` and `<script>` tag string for the SSR response.
|
|
56
|
+
*
|
|
57
|
+
* Mirrors Next.js `_document` behaviour:
|
|
58
|
+
* - CSS files → `<link rel="stylesheet">`.
|
|
59
|
+
* - JS files → `<link rel="modulepreload">` + `<script type="module" defer>`.
|
|
60
|
+
* - Lazy chunks (behind `React.lazy` / `next/dynamic`) are skipped.
|
|
61
|
+
* - The Worker-embedded client-entry bootstrap (`__VINEXT_CLIENT_ENTRY__`) is
|
|
62
|
+
* injected first so hydration starts as early as possible.
|
|
63
|
+
* - Shared framework / vinext runtime chunks are always included alongside
|
|
64
|
+
* page-specific chunks.
|
|
65
|
+
*
|
|
66
|
+
* Extracted from `entries/pages-server-entry.ts`.
|
|
67
|
+
*/
|
|
68
|
+
function collectAssetTags(options) {
|
|
69
|
+
const m = resolveSsrManifest(options.manifest);
|
|
70
|
+
const tags = [];
|
|
71
|
+
const seen = /* @__PURE__ */ new Set();
|
|
72
|
+
const nonceAttr = createNonceAttribute(options.scriptNonce);
|
|
73
|
+
const deferAttr = options.disableOptimizedLoading ? "" : " defer";
|
|
74
|
+
const basePath = options.basePath ?? "";
|
|
75
|
+
const assetPrefix = options.assetPrefix ?? "";
|
|
76
|
+
const href = (value) => {
|
|
77
|
+
const url = assetServingUrlFromBaseAnchored(value, basePath, assetPrefix);
|
|
78
|
+
return value.endsWith(".js") ? url : appendDeploymentIdQuery(url, options.deploymentId);
|
|
79
|
+
};
|
|
80
|
+
const lazyChunks = typeof globalThis !== "undefined" && globalThis.__VINEXT_LAZY_CHUNKS__ || null;
|
|
81
|
+
const lazySet = lazyChunks && lazyChunks.length > 0 ? new Set(lazyChunks) : null;
|
|
82
|
+
if (typeof globalThis !== "undefined" && globalThis.__VINEXT_CLIENT_ENTRY__) {
|
|
83
|
+
const entry = globalThis.__VINEXT_CLIENT_ENTRY__;
|
|
84
|
+
seen.add(entry);
|
|
85
|
+
tags.push("<link rel=\"modulepreload\"" + nonceAttr + " href=\"" + href(entry) + "\" />");
|
|
86
|
+
tags.push("<script type=\"module\"" + deferAttr + nonceAttr + " src=\"" + href(entry) + "\" crossorigin><\/script>");
|
|
87
|
+
}
|
|
88
|
+
if (m) {
|
|
89
|
+
const allFiles = [];
|
|
90
|
+
const moduleIds = options.moduleIds;
|
|
91
|
+
if (moduleIds && moduleIds.length > 0) {
|
|
92
|
+
for (let mi = 0; mi < moduleIds.length; mi++) {
|
|
93
|
+
const id = moduleIds[mi];
|
|
94
|
+
const files = getManifestFilesForModule(m, id);
|
|
95
|
+
if (files) for (let fi = 0; fi < files.length; fi++) allFiles.push(files[fi]);
|
|
96
|
+
}
|
|
97
|
+
for (const key in m) {
|
|
98
|
+
const vals = m[key];
|
|
99
|
+
if (!vals) continue;
|
|
100
|
+
for (let vi = 0; vi < vals.length; vi++) {
|
|
101
|
+
const file = vals[vi];
|
|
102
|
+
const basename = file.split("/").pop() || "";
|
|
103
|
+
if (basename.startsWith("framework-") || basename.startsWith("vinext-") || basename.includes("vinext-client-entry") || basename.includes("vinext-app-browser-entry")) allFiles.push(file);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
} else for (const akey in m) {
|
|
107
|
+
const avals = m[akey];
|
|
108
|
+
if (avals) for (let ai = 0; ai < avals.length; ai++) allFiles.push(avals[ai]);
|
|
109
|
+
}
|
|
110
|
+
for (let ti = 0; ti < allFiles.length; ti++) {
|
|
111
|
+
let tf = allFiles[ti];
|
|
112
|
+
if (tf.charAt(0) === "/") tf = tf.slice(1);
|
|
113
|
+
if (seen.has(tf)) continue;
|
|
114
|
+
seen.add(tf);
|
|
115
|
+
if (tf.endsWith(".css")) tags.push("<link rel=\"stylesheet\"" + nonceAttr + " href=\"" + href(tf) + "\" />");
|
|
116
|
+
else if (tf.endsWith(".js")) {
|
|
117
|
+
if (lazySet && lazySet.has(tf)) continue;
|
|
118
|
+
tags.push("<link rel=\"modulepreload\"" + nonceAttr + " href=\"" + href(tf) + "\" />");
|
|
119
|
+
tags.push("<script type=\"module\"" + deferAttr + nonceAttr + " src=\"" + href(tf) + "\" crossorigin><\/script>");
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return tags.join("\n ");
|
|
124
|
+
}
|
|
125
|
+
//#endregion
|
|
126
|
+
export { collectAssetTags, getManifestFilesForModule, resolveClientModuleUrl, resolveSsrManifest };
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
//#region src/server/pages-body-parser-config.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the Pages Router `api.bodyParser` config from a route module export.
|
|
4
|
+
*
|
|
5
|
+
* Next.js API routes can opt out of automatic body parsing or raise the
|
|
6
|
+
* default 1 MB size limit:
|
|
7
|
+
*
|
|
8
|
+
* export const config = { api: { bodyParser: false } };
|
|
9
|
+
* export const config = { api: { bodyParser: { sizeLimit: '4mb' } } };
|
|
10
|
+
*
|
|
11
|
+
* `bodyParser: false` is critical for webhook handlers (Stripe, GitHub,
|
|
12
|
+
* Slack, etc.) that must read the raw request bytes to verify an HMAC
|
|
13
|
+
* signature. Silently parsing the body would consume the stream and break
|
|
14
|
+
* signature verification — usually failing closed, sometimes failing open.
|
|
15
|
+
*
|
|
16
|
+
* @see https://nextjs.org/docs/pages/building-your-application/routing/api-routes#custom-config
|
|
17
|
+
* @see Next.js: packages/next/src/server/api-utils/node/api-resolver.ts
|
|
18
|
+
*
|
|
19
|
+
* The format of `sizeLimit` mirrors what Next.js accepts via the `bytes`
|
|
20
|
+
* package: a number of bytes, or a string with a unit suffix
|
|
21
|
+
* (`"500b"`, `"100kb"`, `"4mb"`, `"1gb"`).
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Default Pages Router API body size limit, matching Next.js.
|
|
25
|
+
*/
|
|
26
|
+
declare const DEFAULT_PAGES_API_BODY_SIZE_LIMIT: number;
|
|
27
|
+
/**
|
|
28
|
+
* Resolved bodyParser configuration. When `enabled` is `false`, the body
|
|
29
|
+
* MUST be passed through to the handler as a raw stream (or left unparsed
|
|
30
|
+
* with `req.body === undefined`), so user code can read it itself.
|
|
31
|
+
*/
|
|
32
|
+
type ResolvedBodyParserConfig = {
|
|
33
|
+
enabled: false;
|
|
34
|
+
} | {
|
|
35
|
+
enabled: true;
|
|
36
|
+
sizeLimit: number;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Parse a Next.js-style `sizeLimit` string (e.g. `"4mb"`, `"100kb"`, `"1gb"`)
|
|
40
|
+
* or numeric byte value into a number of bytes. Returns `undefined` for
|
|
41
|
+
* inputs that can't be parsed — callers should fall back to the default.
|
|
42
|
+
*
|
|
43
|
+
* Matches the format accepted by Next.js (the `bytes` package); we
|
|
44
|
+
* implement it inline to avoid pulling a dependency for a tiny parser.
|
|
45
|
+
*/
|
|
46
|
+
declare function parseSizeLimit(value: string | number | undefined): number | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* Read the resolved `bodyParser` config from a route module's `config`
|
|
49
|
+
* export. Defaults to enabled with the 1 MB Next.js default.
|
|
50
|
+
*/
|
|
51
|
+
declare function resolveBodyParserConfig(moduleConfig: {
|
|
52
|
+
api?: {
|
|
53
|
+
bodyParser?: boolean | {
|
|
54
|
+
sizeLimit?: string | number;
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
} | undefined, defaultSizeLimit?: number): ResolvedBodyParserConfig;
|
|
58
|
+
//#endregion
|
|
59
|
+
export { DEFAULT_PAGES_API_BODY_SIZE_LIMIT, parseSizeLimit, resolveBodyParserConfig };
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
//#region src/server/pages-body-parser-config.ts
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the Pages Router `api.bodyParser` config from a route module export.
|
|
4
|
+
*
|
|
5
|
+
* Next.js API routes can opt out of automatic body parsing or raise the
|
|
6
|
+
* default 1 MB size limit:
|
|
7
|
+
*
|
|
8
|
+
* export const config = { api: { bodyParser: false } };
|
|
9
|
+
* export const config = { api: { bodyParser: { sizeLimit: '4mb' } } };
|
|
10
|
+
*
|
|
11
|
+
* `bodyParser: false` is critical for webhook handlers (Stripe, GitHub,
|
|
12
|
+
* Slack, etc.) that must read the raw request bytes to verify an HMAC
|
|
13
|
+
* signature. Silently parsing the body would consume the stream and break
|
|
14
|
+
* signature verification — usually failing closed, sometimes failing open.
|
|
15
|
+
*
|
|
16
|
+
* @see https://nextjs.org/docs/pages/building-your-application/routing/api-routes#custom-config
|
|
17
|
+
* @see Next.js: packages/next/src/server/api-utils/node/api-resolver.ts
|
|
18
|
+
*
|
|
19
|
+
* The format of `sizeLimit` mirrors what Next.js accepts via the `bytes`
|
|
20
|
+
* package: a number of bytes, or a string with a unit suffix
|
|
21
|
+
* (`"500b"`, `"100kb"`, `"4mb"`, `"1gb"`).
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Default Pages Router API body size limit, matching Next.js.
|
|
25
|
+
*/
|
|
26
|
+
const DEFAULT_PAGES_API_BODY_SIZE_LIMIT = 1 * 1024 * 1024;
|
|
27
|
+
const SIZE_UNITS = {
|
|
28
|
+
b: 1,
|
|
29
|
+
kb: 1024,
|
|
30
|
+
mb: 1024 * 1024,
|
|
31
|
+
gb: 1024 * 1024 * 1024,
|
|
32
|
+
tb: 1024 * 1024 * 1024 * 1024
|
|
33
|
+
};
|
|
34
|
+
/**
|
|
35
|
+
* Parse a Next.js-style `sizeLimit` string (e.g. `"4mb"`, `"100kb"`, `"1gb"`)
|
|
36
|
+
* or numeric byte value into a number of bytes. Returns `undefined` for
|
|
37
|
+
* inputs that can't be parsed — callers should fall back to the default.
|
|
38
|
+
*
|
|
39
|
+
* Matches the format accepted by Next.js (the `bytes` package); we
|
|
40
|
+
* implement it inline to avoid pulling a dependency for a tiny parser.
|
|
41
|
+
*/
|
|
42
|
+
function parseSizeLimit(value) {
|
|
43
|
+
if (value === void 0 || value === null) return void 0;
|
|
44
|
+
if (typeof value === "number") return Number.isFinite(value) && value >= 0 ? value : void 0;
|
|
45
|
+
if (typeof value !== "string") return void 0;
|
|
46
|
+
const trimmed = value.trim().toLowerCase();
|
|
47
|
+
if (!trimmed) return void 0;
|
|
48
|
+
const match = /^(\d+(?:\.\d+)?)\s*(b|kb|mb|gb|tb)?$/.exec(trimmed);
|
|
49
|
+
if (!match) return void 0;
|
|
50
|
+
const amount = Number.parseFloat(match[1]);
|
|
51
|
+
if (!Number.isFinite(amount) || amount < 0) return void 0;
|
|
52
|
+
const multiplier = SIZE_UNITS[match[2] ?? "b"];
|
|
53
|
+
if (multiplier === void 0) return void 0;
|
|
54
|
+
return Math.floor(amount * multiplier);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Read the resolved `bodyParser` config from a route module's `config`
|
|
58
|
+
* export. Defaults to enabled with the 1 MB Next.js default.
|
|
59
|
+
*/
|
|
60
|
+
function resolveBodyParserConfig(moduleConfig, defaultSizeLimit = DEFAULT_PAGES_API_BODY_SIZE_LIMIT) {
|
|
61
|
+
const bodyParser = moduleConfig?.api?.bodyParser;
|
|
62
|
+
if (bodyParser === false) return { enabled: false };
|
|
63
|
+
if (bodyParser === void 0 || bodyParser === true) return {
|
|
64
|
+
enabled: true,
|
|
65
|
+
sizeLimit: defaultSizeLimit
|
|
66
|
+
};
|
|
67
|
+
if (typeof bodyParser === "object" && bodyParser !== null) return {
|
|
68
|
+
enabled: true,
|
|
69
|
+
sizeLimit: parseSizeLimit(bodyParser.sizeLimit) ?? defaultSizeLimit
|
|
70
|
+
};
|
|
71
|
+
return {
|
|
72
|
+
enabled: true,
|
|
73
|
+
sizeLimit: defaultSizeLimit
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
//#endregion
|
|
77
|
+
export { DEFAULT_PAGES_API_BODY_SIZE_LIMIT, parseSizeLimit, resolveBodyParserConfig };
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
//#region src/server/pages-data-route.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Helpers for the Pages Router `/_next/data/{buildId}/{...page}.json` endpoint.
|
|
4
|
+
*
|
|
5
|
+
* Next.js uses this endpoint for client-side navigations in the Pages Router:
|
|
6
|
+
* `next/link` and `router.push()` fetch `pageProps` from this URL instead of
|
|
7
|
+
* doing a full HTML navigation. The server must:
|
|
8
|
+
* 1. Match the URL pattern and extract the page pathname (with the buildId
|
|
9
|
+
* and `.json` extension removed, locale prefix preserved).
|
|
10
|
+
* 2. Normalize the URL BEFORE middleware runs so middleware sees the page
|
|
11
|
+
* path (e.g. `/about`) rather than the raw `/_next/data/.../about.json`.
|
|
12
|
+
* 3. Invoke the same `getServerSideProps` / `getStaticProps` machinery as
|
|
13
|
+
* the HTML page and serialize the resulting props as a JSON envelope:
|
|
14
|
+
* `{ pageProps: ... }` with `Content-Type: application/json`.
|
|
15
|
+
*
|
|
16
|
+
* Ported from Next.js:
|
|
17
|
+
* - `packages/next/src/server/normalizers/request/next-data.ts` — prefix/suffix matcher.
|
|
18
|
+
* - `packages/next/src/server/base-server.ts` (`handleNextDataRequest`) — pipeline normalization.
|
|
19
|
+
* - `packages/next/src/server/render.tsx` — JSON envelope emission (`isNextDataRequest`).
|
|
20
|
+
*/
|
|
21
|
+
type NextDataMatch = {
|
|
22
|
+
/**
|
|
23
|
+
* The normalized page pathname (with leading slash, no trailing slash,
|
|
24
|
+
* `.json` stripped, buildId stripped). For locale-prefixed requests like
|
|
25
|
+
* `/_next/data/<buildId>/en/about.json` this is `/en/about` — locale
|
|
26
|
+
* handling is done downstream by the existing `resolvePagesI18nRequest`
|
|
27
|
+
* pipeline so this helper does not need to know about i18n config.
|
|
28
|
+
*/
|
|
29
|
+
pagePathname: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* Returns true if the pathname looks like a `_next/data` request, regardless
|
|
33
|
+
* of buildId. Used by the request pipeline to short-circuit before middleware
|
|
34
|
+
* even when the buildId is wrong (so we can still return a 404 JSON response).
|
|
35
|
+
*/
|
|
36
|
+
declare function isNextDataPathname(pathname: string): boolean;
|
|
37
|
+
/**
|
|
38
|
+
* Parse `/_next/data/<buildId>/<...page>.json` and return the normalized page
|
|
39
|
+
* pathname. Returns `null` if the pathname does not match the pattern or if
|
|
40
|
+
* the buildId segment does not match the server's buildId.
|
|
41
|
+
*
|
|
42
|
+
* The returned `pagePathname` is the page route path Next.js would render for
|
|
43
|
+
* the equivalent HTML navigation — including any locale prefix, which is then
|
|
44
|
+
* stripped by `resolvePagesI18nRequest` downstream.
|
|
45
|
+
*
|
|
46
|
+
* `/_next/data/<buildId>/about.json` → `/about`
|
|
47
|
+
* `/_next/data/<buildId>/en/about.json` → `/en/about`
|
|
48
|
+
* `/_next/data/<buildId>/index.json` → `/`
|
|
49
|
+
* `/_next/data/<buildId>/en.json` → `/en`
|
|
50
|
+
* `/_next/data/<wrong-id>/about.json` → null
|
|
51
|
+
* `/_next/data/<buildId>/about` → null (missing .json suffix)
|
|
52
|
+
*/
|
|
53
|
+
declare function parseNextDataPathname(pathname: string, buildId: string): NextDataMatch | null;
|
|
54
|
+
/**
|
|
55
|
+
* Build the JSON envelope returned by `/_next/data/<buildId>/<page>.json`.
|
|
56
|
+
* Mirrors Next.js' `RenderResult(JSON.stringify(props))` path in
|
|
57
|
+
* `packages/next/src/server/render.tsx` (search for `isNextDataRequest`).
|
|
58
|
+
*
|
|
59
|
+
* The envelope is the outer `props` object the React tree would receive:
|
|
60
|
+
* { pageProps: {...}, /* optional locale data, redirect markers, etc. *\/ }
|
|
61
|
+
*/
|
|
62
|
+
declare function buildNextDataJsonResponse(pageProps: Record<string, unknown>, safeJsonStringify: (value: unknown) => string, init?: ResponseInit): Response;
|
|
63
|
+
/**
|
|
64
|
+
* Build a `_next/data` JSON response from the full Pages props object returned
|
|
65
|
+
* through `_app.getInitialProps`. Next.js serializes the same outer props
|
|
66
|
+
* object that would be passed to `<App />`, so custom app-level props remain
|
|
67
|
+
* siblings of `pageProps` in the data envelope.
|
|
68
|
+
*/
|
|
69
|
+
declare function buildNextDataPropsJsonResponse(props: Record<string, unknown>, safeJsonStringify: (value: unknown) => string, init?: ResponseInit): Response;
|
|
70
|
+
/**
|
|
71
|
+
* Build the 404 response Next.js returns for an unknown `_next/data` page.
|
|
72
|
+
* Next.js renders this as a normal 404 page, but the body shape that clients
|
|
73
|
+
* see for a missing page-data endpoint is the literal string `"{ }"` for the
|
|
74
|
+
* body and a 404 status with `application/json` so client-side hard-navigation
|
|
75
|
+
* fallback fires (see `__N_SSP` handling in `router.ts`).
|
|
76
|
+
*
|
|
77
|
+
* We match Next.js' behavior: 404 status + JSON content type. The body is an
|
|
78
|
+
* empty JSON object so clients that blindly call `res.json()` do not throw
|
|
79
|
+
* before checking the status code.
|
|
80
|
+
*/
|
|
81
|
+
declare function buildNextDataNotFoundResponse(): Response;
|
|
82
|
+
type NormalizePagesDataRequestResult = {
|
|
83
|
+
isDataReq: false;
|
|
84
|
+
request: Request;
|
|
85
|
+
normalizedPathname: null;
|
|
86
|
+
search: "";
|
|
87
|
+
notFoundResponse: null;
|
|
88
|
+
} | {
|
|
89
|
+
isDataReq: false;
|
|
90
|
+
request: Request;
|
|
91
|
+
normalizedPathname: null;
|
|
92
|
+
search: "";
|
|
93
|
+
notFoundResponse: Response;
|
|
94
|
+
} | {
|
|
95
|
+
isDataReq: true;
|
|
96
|
+
request: Request;
|
|
97
|
+
normalizedPathname: string;
|
|
98
|
+
search: string;
|
|
99
|
+
notFoundResponse: null;
|
|
100
|
+
};
|
|
101
|
+
/**
|
|
102
|
+
* Detect and normalize `/_next/data/<buildId>/<page>.json` requests in one
|
|
103
|
+
* place so the Pages Router pipeline and middleware shim do not need to know
|
|
104
|
+
* about the data-endpoint protocol.
|
|
105
|
+
*
|
|
106
|
+
* Returns:
|
|
107
|
+
* - `isDataReq: false, notFoundResponse: null` — not a data request.
|
|
108
|
+
* - `isDataReq: false, notFoundResponse: Response` — looks like a data URL but
|
|
109
|
+
* the buildId does not match; callers should return `notFoundResponse`
|
|
110
|
+
* immediately so stale clients fall back to a hard navigation.
|
|
111
|
+
* - `isDataReq: true` — valid data request; `request` is re-pointed at the
|
|
112
|
+
* normalized page path, `normalizedPathname` carries the bare page path, and
|
|
113
|
+
* `search` carries the original query string for callers that need to
|
|
114
|
+
* preserve it.
|
|
115
|
+
*
|
|
116
|
+
* Extracted from `entries/pages-server-entry.ts` so both `renderPage` and
|
|
117
|
+
* `runMiddleware` share a single implementation.
|
|
118
|
+
*/
|
|
119
|
+
declare function normalizePagesDataRequest(request: Request, buildId: string | null, basePath?: string): NormalizePagesDataRequestResult;
|
|
120
|
+
//#endregion
|
|
121
|
+
export { buildNextDataJsonResponse, buildNextDataNotFoundResponse, buildNextDataPropsJsonResponse, isNextDataPathname, normalizePagesDataRequest, parseNextDataPathname };
|