vinext 1.3.0 → 1.4.0
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/README.md +5 -2
- package/THIRD_PARTY_LICENSES.md +47 -0
- package/dist/_virtual/_rolldown/runtime.js +4 -3
- package/dist/build/action-owner-manifest.d.ts +3 -2
- package/dist/build/action-owner-manifest.js +18 -2
- package/dist/build/app-page-static-eligibility.d.ts +17 -1
- package/dist/build/app-page-static-eligibility.js +80 -13
- package/dist/build/clean-output.d.ts +2 -1
- package/dist/build/client-build-config.d.ts +13 -3
- package/dist/build/client-build-config.js +46 -9
- package/dist/build/client-reference-async.d.ts +48 -0
- package/dist/build/client-reference-async.js +123 -0
- package/dist/build/client-reference-chunks.d.ts +32 -0
- package/dist/build/client-reference-chunks.js +111 -0
- package/dist/build/client-reference-groups.d.ts +9 -1
- package/dist/build/client-reference-groups.js +40 -2
- package/dist/build/css-url-assets.d.ts +2 -1
- package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
- package/dist/build/google-fonts/font-metadata.d.ts +2 -1
- package/dist/build/google-fonts/validate.d.ts +2 -1
- package/dist/build/inline-css.d.ts +2 -1
- package/dist/build/module-dependency-cache.d.ts +2 -1
- package/dist/build/next-client-runtime-manifests.d.ts +2 -1
- package/dist/build/precompress.d.ts +2 -1
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-paths.d.ts +2 -1
- package/dist/build/prerender-phase.d.ts +2 -1
- package/dist/build/prerender-server-pool.js +1 -1
- package/dist/build/prerender.d.ts +3 -2
- package/dist/build/prerender.js +6 -5
- package/dist/build/report.d.ts +2 -15
- package/dist/build/report.js +1 -51
- package/dist/build/run-prerender.d.ts +2 -1
- package/dist/build/server-actions-encryption-key.d.ts +2 -1
- package/dist/build/ssr-manifest.js +25 -2
- package/dist/build/standalone.d.ts +2 -1
- package/dist/cache/cache-adapters-virtual.d.ts +2 -1
- package/dist/cache.js +1 -2
- package/dist/check.d.ts +2 -1
- package/dist/check.js +5 -1
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli.js +5 -0
- package/dist/client/client-redirect-matcher.js +2 -1
- package/dist/client/client-redirects.d.ts +4 -3
- package/dist/client/client-redirects.js +2 -1
- package/dist/client/client-rewrites.d.ts +2 -1
- package/dist/client/dev-error-overlay-store.d.ts +2 -1
- package/dist/client/dev-error-overlay.js +1 -1
- package/dist/client/index.js +1 -2
- package/dist/client/instrumentation-client-state.js +5 -5
- package/dist/client/navigation-runtime.d.ts +16 -2
- package/dist/client/navigation-runtime.js +2 -2
- package/dist/client/pages-router-link-navigation.d.ts +2 -1
- package/dist/client/vinext-next-data.d.ts +25 -1
- package/dist/client/window-next.d.ts +2 -1
- package/dist/config/config-matchers.d.ts +12 -1
- package/dist/config/config-matchers.js +111 -16
- package/dist/config/dotenv.d.ts +2 -1
- package/dist/config/next-config.d.ts +32 -1
- package/dist/config/next-config.js +93 -5
- package/dist/config/tsconfig-paths.d.ts +2 -1
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/dbcs-codec.js +327 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/dbcs-data.js +123 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/index.js +29 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/internal.js +134 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-codec.js +50 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-data-generated.js +455 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-data.js +147 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/big5-added.json.js +169 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp936.json.js +2584 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp949.json.js +2220 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp950.json.js +227 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/eucjp.json.js +425 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/gb18030-ranges.json.js +427 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/gbk-added.json.js +229 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/shiftjis.json.js +292 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/utf16.js +106 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/utf7.js +182 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/bom-handling.js +42 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/extend-node.js +147 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/index.js +94 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/streams.js +95 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
- package/dist/deps/.pnpm/safer-buffer@2.1.2/deps/safer-buffer/safer.js +45 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
- package/dist/entries/app-browser-entry.d.ts +20 -5
- package/dist/entries/app-browser-entry.js +79 -6
- package/dist/entries/app-rsc-entry.d.ts +2 -1
- package/dist/entries/app-rsc-entry.js +59 -60
- package/dist/entries/app-rsc-manifest.d.ts +2 -1
- package/dist/entries/app-rsc-manifest.js +56 -4
- package/dist/entries/app-ssr-entry.js +1 -0
- package/dist/entries/pages-entry-helpers.js +1 -2
- package/dist/entries/pages-server-entry.d.ts +2 -1
- package/dist/entries/pages-server-entry.js +34 -9
- package/dist/entries/runtime-entry-module.d.ts +1 -0
- package/dist/entries/runtime-entry-module.js +4 -1
- package/dist/image/image-adapters-virtual.d.ts +2 -1
- package/dist/index.js +184 -103
- package/dist/init-cloudflare.d.ts +1 -3
- package/dist/init-cloudflare.js +10 -48
- package/dist/init-platform.d.ts +2 -0
- package/dist/init-platform.js +4 -0
- package/dist/plugins/client-compile-hints.d.ts +30 -0
- package/dist/plugins/client-compile-hints.js +88 -0
- package/dist/plugins/client-reference-dedup.d.ts +2 -1
- package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
- package/dist/plugins/dynamic-preload-metadata.js +1 -1
- package/dist/plugins/environment.d.ts +2 -1
- package/dist/plugins/extensionless-dynamic-import.js +6 -2
- package/dist/plugins/fonts.js +9 -12
- package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
- package/dist/plugins/import-meta-url.d.ts +2 -1
- package/dist/plugins/next-intl-catalog.d.ts +12 -0
- package/dist/plugins/next-intl-catalog.js +85 -0
- package/dist/plugins/og-assets.d.ts +2 -1
- package/dist/plugins/og-assets.js +2 -3
- package/dist/plugins/optimize-imports.d.ts +2 -1
- package/dist/plugins/pages-node-externals.d.ts +3 -1
- package/dist/plugins/pages-node-externals.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -1
- package/dist/plugins/require-condition-resolution.d.ts +2 -1
- package/dist/plugins/rsc-client-reference-loaders.d.ts +8 -0
- package/dist/plugins/rsc-client-reference-loaders.js +170 -68
- package/dist/plugins/rsc-client-shim-excludes.js +2 -0
- package/dist/plugins/sass.d.ts +2 -1
- package/dist/plugins/strip-server-exports.d.ts +2 -1
- package/dist/plugins/styled-jsx.d.ts +2 -1
- package/dist/plugins/transform-result.d.ts +2 -1
- package/dist/plugins/typeof-window.d.ts +2 -1
- package/dist/plugins/use-cache-callable.d.ts +1 -1
- package/dist/plugins/use-cache-callable.js +136 -94
- package/dist/plugins/worker-image-imports.js +1 -1
- package/dist/plugins/worker-use-server.d.ts +2 -1
- package/dist/routing/app-route-graph.d.ts +46 -0
- package/dist/routing/app-route-graph.js +131 -51
- package/dist/routing/browser-route-manifest.d.ts +2 -1
- package/dist/routing/optimistic-route-trie.d.ts +2 -1
- package/dist/routing/route-matching.d.ts +2 -1
- package/dist/routing/route-pattern.d.ts +2 -1
- package/dist/server/accept-encoding.d.ts +2 -1
- package/dist/server/api-handler.js +19 -4
- package/dist/server/app-action-forwarding.d.ts +2 -1
- package/dist/server/app-bfcache-identity.d.ts +2 -1
- package/dist/server/app-bfcache-identity.js +1 -1
- package/dist/server/app-browser-action-result.d.ts +2 -1
- package/dist/server/app-browser-entry.js +106 -66
- package/dist/server/app-browser-error.d.ts +2 -1
- package/dist/server/app-browser-history-controller.d.ts +7 -5
- package/dist/server/app-browser-history-controller.js +93 -15
- package/dist/server/app-browser-hydration.d.ts +2 -1
- package/dist/server/app-browser-interception-context.d.ts +2 -1
- package/dist/server/app-browser-navigation-controller.d.ts +2 -2
- package/dist/server/app-browser-navigation-controller.js +16 -12
- package/dist/server/app-browser-popstate.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.js +4 -4
- package/dist/server/app-browser-server-action-client.d.ts +4 -1
- package/dist/server/app-browser-server-action-client.js +4 -3
- package/dist/server/app-browser-state.d.ts +2 -4
- package/dist/server/app-browser-state.js +9 -4
- package/dist/server/app-browser-stream.d.ts +2 -1
- package/dist/server/app-browser-supplemental-refresh.js +16 -1
- package/dist/server/app-browser-visible-commit.d.ts +3 -2
- package/dist/server/app-browser-visible-commit.js +2 -12
- package/dist/server/app-client-reference-manifest.d.ts +31 -0
- package/dist/server/app-client-reference-manifest.js +46 -0
- package/dist/server/app-client-reference-preloader.d.ts +25 -5
- package/dist/server/app-client-reference-preloader.js +22 -7
- package/dist/server/app-elements-wire.d.ts +8 -39
- package/dist/server/app-elements-wire.js +4 -41
- package/dist/server/app-elements.d.ts +4 -2
- package/dist/server/app-elements.js +4 -2
- package/dist/server/app-fallback-renderer.d.ts +9 -2
- package/dist/server/app-fallback-renderer.js +4 -1
- package/dist/server/app-history-state.d.ts +4 -3
- package/dist/server/app-history-state.js +5 -2
- package/dist/server/app-inline-css-client.d.ts +2 -1
- package/dist/server/app-metadata-tracing.d.ts +2 -1
- package/dist/server/app-mounted-layouts.d.ts +21 -0
- package/dist/server/app-mounted-layouts.js +67 -0
- package/dist/server/app-optimistic-routing.d.ts +37 -2
- package/dist/server/app-optimistic-routing.js +75 -2
- package/dist/server/app-page-boundary-render.d.ts +20 -2
- package/dist/server/app-page-boundary-render.js +224 -40
- package/dist/server/app-page-boundary.d.ts +34 -5
- package/dist/server/app-page-boundary.js +41 -8
- package/dist/server/app-page-cache-finalizer.d.ts +14 -2
- package/dist/server/app-page-cache-finalizer.js +71 -30
- package/dist/server/app-page-cache-render.d.ts +10 -2
- package/dist/server/app-page-cache-render.js +14 -2
- package/dist/server/app-page-cache.d.ts +13 -1
- package/dist/server/app-page-cache.js +33 -11
- package/dist/server/app-page-dispatch.d.ts +39 -11
- package/dist/server/app-page-dispatch.js +236 -177
- package/dist/server/app-page-element-builder.d.ts +19 -3
- package/dist/server/app-page-element-builder.js +193 -71
- package/dist/server/app-page-execution.d.ts +43 -51
- package/dist/server/app-page-execution.js +205 -92
- package/dist/server/app-page-head.d.ts +108 -3
- package/dist/server/app-page-head.js +337 -154
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +49 -2
- package/dist/server/app-page-http-access-fallback-metadata.js +77 -2
- package/dist/server/app-page-layout-gate.d.ts +35 -0
- package/dist/server/app-page-layout-gate.js +50 -0
- package/dist/server/app-page-method.d.ts +2 -1
- package/dist/server/app-page-params.d.ts +0 -1
- package/dist/server/app-page-params.js +1 -14
- package/dist/server/app-page-probe.d.ts +5 -22
- package/dist/server/app-page-probe.js +4 -37
- package/dist/server/app-page-render-identity.d.ts +2 -1
- package/dist/server/app-page-render.d.ts +9 -13
- package/dist/server/app-page-render.js +108 -214
- package/dist/server/app-page-request.d.ts +15 -4
- package/dist/server/app-page-request.js +2 -2
- package/dist/server/app-page-response.js +3 -3
- package/dist/server/app-page-route-wiring.d.ts +65 -8
- package/dist/server/app-page-route-wiring.js +259 -103
- package/dist/server/app-page-rsc-render-status.d.ts +29 -2
- package/dist/server/app-page-rsc-render-status.js +121 -13
- package/dist/server/app-page-search-params-observation.d.ts +7 -2
- package/dist/server/app-page-search-params-observation.js +8 -1
- package/dist/server/app-page-segment-plan.d.ts +2 -1
- package/dist/server/app-page-stream.d.ts +33 -1
- package/dist/server/app-page-stream.js +25 -6
- package/dist/server/app-pages-bridge.d.ts +6 -1
- package/dist/server/app-pages-bridge.js +7 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
- package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
- package/dist/server/app-prerender-endpoints.d.ts +2 -1
- package/dist/server/app-prerender-static-params.d.ts +2 -1
- package/dist/server/app-render-dependency.d.ts +21 -4
- package/dist/server/app-render-dependency.js +100 -33
- package/dist/server/app-request-stage-dispatch.js +1 -1
- package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
- package/dist/server/app-response-stage-entry.d.ts +2 -1
- package/dist/server/app-route-handler-cache.d.ts +2 -1
- package/dist/server/app-route-handler-cache.js +2 -2
- package/dist/server/app-route-handler-dispatch.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.js +15 -10
- package/dist/server/app-route-handler-execution.d.ts +2 -1
- package/dist/server/app-route-handler-execution.js +8 -3
- package/dist/server/app-route-handler-policy.d.ts +1 -1
- package/dist/server/app-route-handler-policy.js +3 -3
- package/dist/server/app-route-handler-response.d.ts +2 -1
- package/dist/server/app-route-handler-response.js +1 -1
- package/dist/server/app-route-handler-runtime.d.ts +2 -1
- package/dist/server/app-route-handler-runtime.js +17 -4
- package/dist/server/app-route-module-loader.d.ts +18 -1
- package/dist/server/app-route-module-loader.js +8 -0
- package/dist/server/app-route-tree-prefetch.d.ts +2 -1
- package/dist/server/app-rsc-cache-busting.d.ts +2 -2
- package/dist/server/app-rsc-cache-busting.js +4 -4
- package/dist/server/app-rsc-error-handler.d.ts +4 -2
- package/dist/server/app-rsc-error-handler.js +9 -1
- package/dist/server/app-rsc-errors.d.ts +10 -1
- package/dist/server/app-rsc-errors.js +8 -1
- package/dist/server/app-rsc-handler.d.ts +7 -6
- package/dist/server/app-rsc-handler.js +36 -34
- package/dist/server/app-rsc-request-normalization.d.ts +0 -4
- package/dist/server/app-rsc-request-normalization.js +1 -4
- package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
- package/dist/server/app-rsc-response-finalizer.js +2 -2
- package/dist/server/app-rsc-response-stage.js +5 -3
- package/dist/server/app-rsc-route-matching.d.ts +38 -1
- package/dist/server/app-rsc-route-matching.js +24 -0
- package/dist/server/app-segment-config.d.ts +2 -1
- package/dist/server/app-segment-config.js +1 -14
- package/dist/server/app-server-action-execution.d.ts +5 -2
- package/dist/server/app-server-action-execution.js +10 -7
- package/dist/server/app-ssr-entry.d.ts +8 -0
- package/dist/server/app-ssr-entry.js +98 -50
- package/dist/server/app-ssr-error-meta.d.ts +2 -1
- package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
- package/dist/server/app-ssr-stream.d.ts +22 -10
- package/dist/server/app-ssr-stream.js +300 -68
- package/dist/server/app-static-generation.d.ts +2 -1
- package/dist/server/app-streamed-client-references.d.ts +39 -0
- package/dist/server/app-streamed-client-references.js +156 -0
- package/dist/server/app-visited-response-cache.d.ts +38 -2
- package/dist/server/app-visited-response-cache.js +46 -5
- package/dist/server/app-worker-stages.d.ts +27 -4
- package/dist/server/app-worker-stages.js +45 -6
- package/dist/server/artifact-compatibility.d.ts +2 -2
- package/dist/server/artifact-compatibility.js +1 -10
- package/dist/server/bfcache-identity.d.ts +2 -1
- package/dist/server/cache-headers.d.ts +2 -1
- package/dist/server/cache-proof.d.ts +1 -115
- package/dist/server/cache-proof.js +1 -544
- package/dist/server/cacheability-request.d.ts +2 -1
- package/dist/server/cacheability-request.js +13 -8
- package/dist/server/config-headers.d.ts +2 -1
- package/dist/server/csp.d.ts +2 -1
- package/dist/server/default-global-not-found-module.d.ts +2 -1
- package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
- package/dist/server/default-http-access-fallback-modules.js +31 -0
- package/dist/server/defer-until-stream-consumed.d.ts +34 -0
- package/dist/server/defer-until-stream-consumed.js +154 -21
- package/dist/server/dev-lockfile.d.ts +32 -2
- package/dist/server/dev-lockfile.js +46 -2
- package/dist/server/dev-module-runner.d.ts +2 -1
- package/dist/server/dev-server.js +14 -6
- package/dist/server/fetch-handler.js +1 -2
- package/dist/server/file-based-metadata.d.ts +2 -1
- package/dist/server/framework-tracer.d.ts +2 -1
- package/dist/server/headers.d.ts +6 -3
- package/dist/server/headers.js +9 -5
- package/dist/server/html.d.ts +1 -0
- package/dist/server/html.js +19 -1
- package/dist/server/http-conditional.d.ts +2 -1
- package/dist/server/http-error-responses.d.ts +2 -1
- package/dist/server/implicit-tags.d.ts +2 -1
- package/dist/server/isr-cache.d.ts +8 -2
- package/dist/server/isr-cache.js +26 -1
- package/dist/server/metadata-route-build-data.d.ts +2 -1
- package/dist/server/metadata-route-build-data.js +1 -1
- package/dist/server/metadata-route-response.d.ts +2 -1
- package/dist/server/metadata-route-response.js +32 -15
- package/dist/server/metadata-routes.d.ts +2 -1
- package/dist/server/middleware-runtime.d.ts +2 -1
- package/dist/server/multi-stage.d.ts +52 -11
- package/dist/server/multi-stage.js +13 -1
- package/dist/server/navigation-planner.js +1 -1
- package/dist/server/navigation-trace.d.ts +2 -1
- package/dist/server/next-error-digest.d.ts +2 -1
- package/dist/server/nitro-public-files-plugin.d.ts +2 -1
- package/dist/server/nitro-public-files.d.ts +2 -1
- package/dist/server/opentelemetry-api.d.ts +2 -1
- package/dist/server/operation-token.d.ts +2 -1
- package/dist/server/pages-api-route.d.ts +2 -1
- package/dist/server/pages-api-route.js +28 -19
- package/dist/server/pages-asset-tags.d.ts +2 -1
- package/dist/server/pages-body-parser-config.d.ts +2 -1
- package/dist/server/pages-client-assets.d.ts +4 -0
- package/dist/server/pages-data-route.d.ts +2 -1
- package/dist/server/pages-document-asset-props.d.ts +2 -1
- package/dist/server/pages-document-initial-props.d.ts +2 -1
- package/dist/server/pages-execution-tracing.d.ts +2 -1
- package/dist/server/pages-execution-tracing.js +1 -1
- package/dist/server/pages-get-initial-props.d.ts +2 -1
- package/dist/server/pages-media-type.d.ts +21 -1
- package/dist/server/pages-media-type.js +69 -5
- package/dist/server/pages-node-compat.js +52 -27
- package/dist/server/pages-page-data.d.ts +7 -1
- package/dist/server/pages-page-data.js +35 -12
- package/dist/server/pages-page-handler.d.ts +3 -2
- package/dist/server/pages-page-handler.js +27 -27
- package/dist/server/pages-page-method.d.ts +2 -1
- package/dist/server/pages-page-response.d.ts +2 -1
- package/dist/server/pages-preview.d.ts +2 -1
- package/dist/server/pages-readiness.d.ts +2 -1
- package/dist/server/pages-request-pipeline.d.ts +10 -1
- package/dist/server/pages-request-pipeline.js +6 -7
- package/dist/server/pages-request-stage-entry.d.ts +2 -1
- package/dist/server/pages-request-stage-entry.js +14 -12
- package/dist/server/pages-response-stage-entry.d.ts +2 -1
- package/dist/server/pages-response-stage-entry.js +9 -3
- package/dist/server/pages-route-data-kind.d.ts +2 -1
- package/dist/server/prerender-cache-life-header.d.ts +2 -1
- package/dist/server/prerender-route-params.d.ts +2 -1
- package/dist/server/prod-server.js +14 -4
- package/dist/server/request-log.d.ts +2 -1
- package/dist/server/request-pipeline.d.ts +6 -0
- package/dist/server/request-pipeline.js +21 -1
- package/dist/server/request-tracing.d.ts +2 -1
- package/dist/server/request-tracing.js +1 -1
- package/dist/server/response-start-tracing.js +7 -29
- package/dist/server/rsc-render-stream.d.ts +4 -0
- package/dist/server/rsc-render-stream.js +25 -0
- package/dist/server/seed-cache.d.ts +2 -1
- package/dist/server/seed-cache.js +1 -1
- package/dist/server/shared-cache-identity.d.ts +23 -0
- package/dist/server/shared-cache-identity.js +36 -0
- package/dist/server/static-file-cache.d.ts +2 -1
- package/dist/server/static-file-cache.js +1 -0
- package/dist/server/worker-revalidation-context.d.ts +2 -1
- package/dist/server/worker-stages.d.ts +18 -4
- package/dist/server/worker-stages.js +23 -4
- package/dist/shims/app.d.ts +2 -1
- package/dist/shims/cache-callable-runtime.d.ts +2 -1
- package/dist/shims/cache-handler.d.ts +8 -3
- package/dist/shims/cache-handler.js +31 -11
- package/dist/shims/cache-request-state.d.ts +17 -20
- package/dist/shims/cache-request-state.js +16 -21
- package/dist/shims/cache-runtime.js +27 -11
- package/dist/shims/cache.d.ts +8 -7
- package/dist/shims/cache.js +17 -19
- package/dist/shims/cacheability-classification.d.ts +2 -0
- package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
- package/dist/shims/caught-not-found-boundaries.js +48 -0
- package/dist/shims/cdn-cache.d.ts +22 -5
- package/dist/shims/cdn-purge-routes.d.ts +2 -1
- package/dist/shims/client-locale.js +2 -1
- package/dist/shims/client-page-root.d.ts +2 -1
- package/dist/shims/client-page-root.js +2 -2
- package/dist/shims/config.d.ts +2 -1
- package/dist/shims/default-forbidden.d.ts +4 -0
- package/dist/shims/default-forbidden.js +18 -0
- package/dist/shims/default-not-found.d.ts +0 -5
- package/dist/shims/default-not-found.js +5 -41
- package/dist/shims/default-unauthorized.d.ts +4 -0
- package/dist/shims/default-unauthorized.js +18 -0
- package/dist/shims/dynamic.js +9 -6
- package/dist/shims/error-boundary.d.ts +39 -3
- package/dist/shims/error-boundary.js +33 -18
- package/dist/shims/fetch-cache-state.d.ts +5 -1
- package/dist/shims/fetch-cache-state.js +1 -3
- package/dist/shims/fetch-cache.d.ts +2 -1
- package/dist/shims/fetch-cache.js +34 -24
- package/dist/shims/font-google.js +1 -2
- package/dist/shims/font-utils.d.ts +3 -2
- package/dist/shims/font-utils.js +5 -3
- package/dist/shims/form.js +3 -3
- package/dist/shims/headers.d.ts +8 -23
- package/dist/shims/headers.js +17 -67
- package/dist/shims/http-access-error-fallback.d.ts +7 -0
- package/dist/shims/http-access-error-fallback.js +47 -0
- package/dist/shims/image.d.ts +1 -22
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
- package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
- package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
- package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
- package/dist/shims/internal/client-reference-loader.d.ts +7 -0
- package/dist/shims/internal/client-reference-loader.js +91 -0
- package/dist/shims/internal/cookie-serialize.d.ts +2 -1
- package/dist/shims/internal/cookies.js +1 -2
- package/dist/shims/internal/headers-state.d.ts +2 -0
- package/dist/shims/internal/headers-state.js +6 -1
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +2 -1
- package/dist/shims/internal/interpolate-as.d.ts +2 -1
- package/dist/shims/internal/navigation-untracked.js +1 -1
- package/dist/shims/internal/pages-data-target.d.ts +2 -1
- package/dist/shims/internal/pages-data-url.d.ts +2 -1
- package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
- package/dist/shims/link.js +197 -52
- package/dist/shims/metadata.d.ts +52 -29
- package/dist/shims/metadata.js +142 -42
- package/dist/shims/navigation-errors.d.ts +2 -1
- package/dist/shims/navigation-server.js +1 -1
- package/dist/shims/navigation.d.ts +95 -8
- package/dist/shims/navigation.js +255 -47
- package/dist/shims/navigation.react-server.js +2 -2
- package/dist/shims/pages-router-runtime.d.ts +2 -1
- package/dist/shims/ppr-fallback-shell.d.ts +2 -1
- package/dist/shims/request-state-types.d.ts +2 -2
- package/dist/shims/router.js +14 -3
- package/dist/shims/slot.d.ts +12 -0
- package/dist/shims/slot.js +37 -9
- package/dist/shims/unified-request-context.d.ts +1 -1
- package/dist/shims/unified-request-context.js +5 -6
- package/dist/typegen.d.ts +2 -1
- package/dist/utils/cache-control-metadata.d.ts +5 -0
- package/dist/utils/cache-control-metadata.js +9 -1
- package/dist/utils/client-build-manifest.d.ts +4 -1
- package/dist/utils/client-build-manifest.js +9 -2
- package/dist/utils/client-entry-manifest.d.ts +13 -0
- package/dist/utils/client-entry-manifest.js +20 -1
- package/dist/utils/client-reference-chunks.d.ts +45 -0
- package/dist/utils/client-reference-chunks.js +30 -0
- package/dist/utils/client-runtime-metadata.d.ts +9 -1
- package/dist/utils/client-runtime-metadata.js +40 -9
- package/dist/utils/compare.d.ts +9 -0
- package/dist/utils/compare.js +15 -1
- package/dist/utils/lazy-chunks.d.ts +14 -0
- package/dist/utils/lazy-chunks.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +2 -1
- package/dist/utils/project.d.ts +4 -3
- package/dist/utils/project.js +12 -17
- package/dist/utils/query.d.ts +2 -1
- package/dist/utils/regex.d.ts +5 -0
- package/dist/utils/regex.js +11 -1
- package/dist/utils/text-stream.d.ts +10 -5
- package/dist/utils/text-stream.js +6 -6
- package/dist/utils/vite-cli-invocation.d.ts +2 -1
- package/package.json +6 -5
- package/dist/build/layout-classification-types.d.ts +0 -60
- package/dist/build/layout-classification-types.js +0 -1
- package/dist/build/layout-classification.d.ts +0 -61
- package/dist/build/layout-classification.js +0 -98
- package/dist/build/route-classification-injector.d.ts +0 -32
- package/dist/build/route-classification-injector.js +0 -59
- package/dist/build/route-classification-manifest.d.ts +0 -53
- package/dist/build/route-classification-manifest.js +0 -143
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
- package/dist/server/app-browser-client-reuse-manifest.d.ts +0 -10
- package/dist/server/app-browser-client-reuse-manifest.js +0 -101
- package/dist/server/app-layout-param-observation.d.ts +0 -41
- package/dist/server/app-layout-param-observation.js +0 -168
- package/dist/server/client-reuse-manifest.d.ts +0 -102
- package/dist/server/client-reuse-manifest.js +0 -209
- package/dist/server/default-not-found-module.d.ts +0 -19
- package/dist/server/default-not-found-module.js +0 -18
- package/dist/server/rsc-stream-hints.d.ts +0 -21
- package/dist/server/rsc-stream-hints.js +0 -227
- package/dist/server/skip-cache-proof.d.ts +0 -60
- package/dist/server/skip-cache-proof.js +0 -168
- package/dist/server/static-layout-client-reuse-proof.d.ts +0 -13
- package/dist/server/static-layout-client-reuse-proof.js +0 -33
- package/dist/utils/sorted-array.d.ts +0 -7
- package/dist/utils/sorted-array.js +0 -20
package/dist/server/html.js
CHANGED
|
@@ -37,6 +37,24 @@ function safeJsonStringify(data) {
|
|
|
37
37
|
if (!HTML_UNSAFE_JSON_CHAR_RE.test(json)) return json;
|
|
38
38
|
return json.replace(HTML_UNSAFE_JSON_CHARS_RE, escapeHtmlUnsafeJsonChar);
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Minimal escaping for JSON that is only ever embedded as the content of a
|
|
42
|
+
* classic inline <script> element. The HTML spec only forbids "<!--",
|
|
43
|
+
* "<script" and "<\/script" (ASCII case-insensitive) in script content, so
|
|
44
|
+
* only a '<' that begins one of those is escaped; '>' and '&' have no
|
|
45
|
+
* meaning there.
|
|
46
|
+
* https://html.spec.whatwg.org/multipage/scripting.html#restrictions-for-contents-of-script-elements
|
|
47
|
+
*
|
|
48
|
+
* Used for the large RSC payload chunks: leaving markup such as "<p>" intact
|
|
49
|
+
* lets compression match it against the identical SSR markup. Do not use
|
|
50
|
+
* this for values that can land outside a script element.
|
|
51
|
+
*/
|
|
52
|
+
const SCRIPT_UNSAFE_JSON_CHARS_RE = /<(?=!--|\/?script)|[\u2028\u2029]/gi;
|
|
53
|
+
function scriptSafeJsonStringify(data) {
|
|
54
|
+
const json = JSON.stringify(data);
|
|
55
|
+
if (json === void 0) throw new TypeError("Cannot serialize value as JSON");
|
|
56
|
+
return json.replace(SCRIPT_UNSAFE_JSON_CHARS_RE, escapeHtmlUnsafeJsonChar);
|
|
57
|
+
}
|
|
40
58
|
function escapeHtmlAttr(value) {
|
|
41
59
|
return value.replace(/&/g, "&").replace(/"/g, """).replace(/</g, "<").replace(/>/g, ">");
|
|
42
60
|
}
|
|
@@ -53,4 +71,4 @@ function createInlineScriptTag(content, nonce) {
|
|
|
53
71
|
return `<script${createNonceAttribute(nonce)}>${content}<\/script>`;
|
|
54
72
|
}
|
|
55
73
|
//#endregion
|
|
56
|
-
export { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr, htmlTokenListContains, safeJsonStringify };
|
|
74
|
+
export { createInlineScriptTag, createNonceAttribute, escapeHtmlAttr, htmlTokenListContains, safeJsonStringify, scriptSafeJsonStringify };
|
|
@@ -29,4 +29,5 @@ type StaticConditionalHeaders = {
|
|
|
29
29
|
export type StaticPreconditionResult = "proceed" | "not-modified" | "precondition-failed";
|
|
30
30
|
/** Evaluate static representation preconditions in RFC 9110 section 13.2.2 order. */
|
|
31
31
|
export declare function evaluateStaticPreconditions(headers: StaticConditionalHeaders, method: string | undefined, etag: string | undefined, mtimeMs: number): StaticPreconditionResult;
|
|
32
|
-
//#endregion
|
|
32
|
+
//#endregion
|
|
33
|
+
export {};
|
|
@@ -88,4 +88,5 @@ export declare function payloadTooLargeResponse(): Response;
|
|
|
88
88
|
* to use the canonical "Internal Server Error" body.
|
|
89
89
|
*/
|
|
90
90
|
export declare function internalServerErrorResponse(message?: string, init?: ErrorResponseInit): Response;
|
|
91
|
-
//#endregion
|
|
91
|
+
//#endregion
|
|
92
|
+
export {};
|
|
@@ -2,4 +2,5 @@
|
|
|
2
2
|
type AppCacheLeafKind = "page" | "route";
|
|
3
3
|
export declare function buildAppPageTags(cleanPathname: string, extraTags: string[], routeSegments: readonly string[]): string[];
|
|
4
4
|
export declare function buildPageCacheTags(pathname: string, extraTags: string[], routeSegments: string[], leafKind: AppCacheLeafKind): string[];
|
|
5
|
-
//#endregion
|
|
5
|
+
//#endregion
|
|
6
|
+
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { OnRequestErrorContext } from "./instrumentation.js";
|
|
2
|
-
import { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER } from "../utils/protocol-headers.js";
|
|
3
1
|
import { RenderObservation } from "./cache-proof.js";
|
|
4
2
|
import { AppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
3
|
+
import { OnRequestErrorContext } from "./instrumentation.js";
|
|
4
|
+
import { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER } from "../utils/protocol-headers.js";
|
|
5
5
|
import { normalizeMountedSlotsHeader } from "./app-mounted-slots-header.js";
|
|
6
6
|
import { CacheControlMetadata, CacheHandlerValue, CachedAppPageValue, CachedPagesValue, IncrementalCacheValue } from "../shims/cache-handler.js";
|
|
7
7
|
import { getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret } from "./revalidation-request.js";
|
|
@@ -68,6 +68,12 @@ export declare function isrSetPrerenderedAppPage(key: string, data: CachedAppPag
|
|
|
68
68
|
}): Promise<void>;
|
|
69
69
|
/** Coalesce same-key synchronous on-demand revalidations. */
|
|
70
70
|
export declare function coalesceOnDemandRevalidation<T>(key: string, renderFn: () => Promise<T>): Promise<T>;
|
|
71
|
+
/**
|
|
72
|
+
* Coalesce same-key on-demand revalidations whose render answers with a
|
|
73
|
+
* Response, or null for no match. Every caller gets its own copy of the one
|
|
74
|
+
* render's response. `method` is the request method the response answers.
|
|
75
|
+
*/
|
|
76
|
+
export declare function coalesceOnDemandResponse<R extends Response | null>(key: string, method: string, renderFn: () => Promise<R>): Promise<R>;
|
|
71
77
|
/**
|
|
72
78
|
* Trigger a background regeneration for a cache key.
|
|
73
79
|
*
|
package/dist/server/isr-cache.js
CHANGED
|
@@ -101,6 +101,31 @@ function coalesceOnDemandRevalidation(key, renderFn) {
|
|
|
101
101
|
return promise;
|
|
102
102
|
}
|
|
103
103
|
/**
|
|
104
|
+
* Coalesce same-key on-demand revalidations whose render answers with a
|
|
105
|
+
* Response, or null for no match. Every caller gets its own copy of the one
|
|
106
|
+
* render's response. `method` is the request method the response answers.
|
|
107
|
+
*/
|
|
108
|
+
async function coalesceOnDemandResponse(key, method, renderFn) {
|
|
109
|
+
const snapshot = await coalesceOnDemandRevalidation(key, async () => {
|
|
110
|
+
const response = await renderFn();
|
|
111
|
+
if (!response) return null;
|
|
112
|
+
const hasBody = method !== "HEAD" && response.status !== 204 && response.status !== 205 && response.status !== 304;
|
|
113
|
+
if (!hasBody) await response.body?.cancel();
|
|
114
|
+
return {
|
|
115
|
+
body: hasBody ? new Uint8Array(await response.arrayBuffer()) : null,
|
|
116
|
+
headers: [...response.headers.entries()],
|
|
117
|
+
status: response.status,
|
|
118
|
+
statusText: response.statusText
|
|
119
|
+
};
|
|
120
|
+
});
|
|
121
|
+
if (!snapshot) return null;
|
|
122
|
+
return new Response(snapshot.body?.slice() ?? null, {
|
|
123
|
+
headers: snapshot.headers,
|
|
124
|
+
status: snapshot.status,
|
|
125
|
+
statusText: snapshot.statusText
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
104
129
|
* Trigger a background regeneration for a cache key.
|
|
105
130
|
*
|
|
106
131
|
* If a regeneration for this key is already in progress, this is a no-op.
|
|
@@ -247,4 +272,4 @@ function appIsrRouteKey(pathname) {
|
|
|
247
272
|
return appIsrCacheKey(pathname, pathname !== "/" && pathname.endsWith("/") ? "route:trailing-slash" : "route");
|
|
248
273
|
}
|
|
249
274
|
//#endregion
|
|
250
|
-
export { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, appIsrCacheKey, appIsrFallbackShellHtmlKey, appIsrFallbackShellKey, appIsrHtmlKey, appIsrRouteKey, appIsrRscKey, buildAppPageCacheValue, buildPagesCacheValue, coalesceOnDemandRevalidation, getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret, isrCacheControl, isrCacheKey, isrGet, isrSet, isrSetPrerenderedAppPage, normalizeMountedSlotsHeader, pagesIsrCacheKey, resolveRouteExpireSeconds, triggerBackgroundRegeneration };
|
|
275
|
+
export { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, appIsrCacheKey, appIsrFallbackShellHtmlKey, appIsrFallbackShellKey, appIsrHtmlKey, appIsrRouteKey, appIsrRscKey, buildAppPageCacheValue, buildPagesCacheValue, coalesceOnDemandResponse, coalesceOnDemandRevalidation, getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret, isrCacheControl, isrCacheKey, isrGet, isrSet, isrSetPrerenderedAppPage, normalizeMountedSlotsHeader, pagesIsrCacheKey, resolveRouteExpireSeconds, triggerBackgroundRegeneration };
|
|
@@ -19,4 +19,5 @@ type MetadataRouteEntryData = {
|
|
|
19
19
|
export declare function createMetadataRouteEntryData(route: MetadataFileRoute): MetadataRouteEntryData;
|
|
20
20
|
export declare function createMetadataRouteEntrySource(input: MetadataRouteEntrySourceInput): string;
|
|
21
21
|
export declare function createMetadataRouteEntriesSource(routes: readonly MetadataFileRoute[], moduleNames: ReadonlyMap<string, string>): string[];
|
|
22
|
-
//#endregion
|
|
22
|
+
//#endregion
|
|
23
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { routePatternParts } from "../routing/route-pattern.js";
|
|
2
2
|
import { getMetadataRouteKind } from "./metadata-routes.js";
|
|
3
|
-
import imageSize from "../deps/.pnpm/image-size@2.0.
|
|
3
|
+
import { imageSize } from "../deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js";
|
|
4
4
|
import fs from "node:fs";
|
|
5
5
|
import { createHash } from "node:crypto";
|
|
6
6
|
//#region src/server/metadata-route-build-data.ts
|
|
@@ -37,4 +37,5 @@ export type PrerenderableMetadataRoute = {
|
|
|
37
37
|
export declare function getPrerenderableMetadataRoutePaths(metadataRoutes: readonly MetadataRuntimeRoute[]): Promise<PrerenderableMetadataRoute[]>;
|
|
38
38
|
export declare function isMetadataRouteRequestPath(metadataRoutes: readonly MetadataRuntimeRoute[], cleanPathname: string): boolean;
|
|
39
39
|
export declare function handleMetadataRouteRequest(options: MetadataRouteRequestOptions): Promise<Response | null>;
|
|
40
|
-
//#endregion
|
|
40
|
+
//#endregion
|
|
41
|
+
export {};
|
|
@@ -8,17 +8,17 @@ import { runInWorkStoreScope } from "../shims/internal/work-store-scope.js";
|
|
|
8
8
|
import { beginRouteCacheability, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete, recordRouteCacheability } from "../shims/cacheability-classification.js";
|
|
9
9
|
import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy } from "./cache-control.js";
|
|
10
10
|
import { buildAppRouteMissIsrCacheControl } from "./isr-decision.js";
|
|
11
|
-
import { isrCacheControl } from "./isr-cache.js";
|
|
11
|
+
import { coalesceOnDemandResponse, isrCacheControl } from "./isr-cache.js";
|
|
12
12
|
import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
|
|
13
13
|
import { isRenderDynamicLatched } from "../shims/internal/headers-state.js";
|
|
14
14
|
import { getActiveDraftModeState, getHeadersContext, hasDraftModeCookieHeader, replaceHeadersContext } from "../shims/headers.js";
|
|
15
|
-
import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
|
|
15
|
+
import { _consumeRequestScopedCacheLife, _isOnDemandRevalidate } from "../shims/cache-request-state.js";
|
|
16
16
|
import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchSoftTags } from "../shims/fetch-cache.js";
|
|
17
17
|
import { isValidMetadataImageId, manifestToJson, matchMetadataRoutePattern, robotsToText, sitemapToXml } from "./metadata-routes.js";
|
|
18
|
-
import {
|
|
18
|
+
import { buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
|
|
19
19
|
import { canonicalizeAppPageParams } from "./app-page-segment-state.js";
|
|
20
|
+
import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
|
|
20
21
|
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
21
|
-
import { buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
|
|
22
22
|
import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
|
|
23
23
|
import { completeAppRouteHandlerResponse } from "./app-route-handler-execution.js";
|
|
24
24
|
//#region src/server/metadata-route-response.ts
|
|
@@ -165,7 +165,7 @@ async function captureRenderedMetadataRoute(response, route, cleanPathname) {
|
|
|
165
165
|
...observedCacheLife,
|
|
166
166
|
revalidate: frameworkRevalidate
|
|
167
167
|
};
|
|
168
|
-
const cacheable = (response.status < 400 || response.status === 404) && completed && !isRenderDynamicLatched() && !getActiveDraftModeState() && !hasDraftModeCookieHeader() && route.module?.dynamic !== "force-dynamic" && frameworkRevalidate > 0 && !response.headers.has("set-cookie");
|
|
168
|
+
const cacheable = (_isOnDemandRevalidate() || response.status < 400 || response.status === 404) && completed && !isRenderDynamicLatched() && !getActiveDraftModeState() && !hasDraftModeCookieHeader() && route.module?.dynamic !== "force-dynamic" && frameworkRevalidate > 0 && !response.headers.has("set-cookie");
|
|
169
169
|
const cacheControl = cacheable ? buildAppRouteMissIsrCacheControl(frameworkRevalidate, cacheLife?.expire) : NEVER_CACHE_CONTROL;
|
|
170
170
|
if (isUserResponse && !hasUserPolicy) {
|
|
171
171
|
response = new Response(response.body, {
|
|
@@ -231,12 +231,34 @@ async function runMetadataRouteRegeneration(options, route, render, routeKey, pr
|
|
|
231
231
|
await closeAfterResponse(requestContext);
|
|
232
232
|
}
|
|
233
233
|
}
|
|
234
|
+
/** The outer ISR key for a matched metadata route, or null if it's never cached. */
|
|
235
|
+
function getOuterMetadataCacheKey(options, route) {
|
|
236
|
+
if (!isOuterMetadataCacheEnabled() || !options.isrRouteKey || getActiveDraftModeState() || hasDraftModeCookieHeader() || route.module?.dynamic === "force-dynamic" || route.module?.revalidate === 0) return null;
|
|
237
|
+
return options.isrRouteKey(options.cleanPathname);
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Renders a matched metadata route that wasn't served from the cache, and
|
|
241
|
+
* stores it. Concurrent on-demand revalidations of one entry share a single
|
|
242
|
+
* render, as Next.js batches ResponseCache work by its key and
|
|
243
|
+
* isOnDemandRevalidate.
|
|
244
|
+
*/
|
|
245
|
+
async function renderMetadataRouteMiss(options, route, render, cachedEntry) {
|
|
246
|
+
const renderAndStore = async () => {
|
|
247
|
+
const rendered = await render();
|
|
248
|
+
if (!rendered) return null;
|
|
249
|
+
await writeMetadataRouteMiss(options, route, rendered, cachedEntry);
|
|
250
|
+
return rendered.response;
|
|
251
|
+
};
|
|
252
|
+
const routeKey = _isOnDemandRevalidate() ? getOuterMetadataCacheKey(options, route) : null;
|
|
253
|
+
if (routeKey === null || !options.isrSet) return renderAndStore();
|
|
254
|
+
return coalesceOnDemandResponse(routeKey, "GET", renderAndStore);
|
|
255
|
+
}
|
|
234
256
|
async function readMatchedPrerenderedMetadataRouteResponse(options, route, render) {
|
|
235
|
-
|
|
257
|
+
const routeKey = getOuterMetadataCacheKey(options, route);
|
|
258
|
+
if (routeKey === null || !options.isrGet || _isOnDemandRevalidate()) return {
|
|
236
259
|
cachedEntry: null,
|
|
237
260
|
response: null
|
|
238
261
|
};
|
|
239
|
-
const routeKey = options.isrRouteKey(options.cleanPathname);
|
|
240
262
|
let cached;
|
|
241
263
|
try {
|
|
242
264
|
cached = await options.isrGet(routeKey);
|
|
@@ -495,11 +517,8 @@ async function handleMetadataRouteRequest(options) {
|
|
|
495
517
|
};
|
|
496
518
|
const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route, render);
|
|
497
519
|
if (cached.response) return cached.response;
|
|
498
|
-
const
|
|
499
|
-
if (
|
|
500
|
-
await writeMetadataRouteMiss(options, route, rendered, cached.cachedEntry);
|
|
501
|
-
return rendered.response;
|
|
502
|
-
}
|
|
520
|
+
const response = await renderMetadataRouteMiss(options, route, render, cached.cachedEntry);
|
|
521
|
+
if (response) return response;
|
|
503
522
|
}
|
|
504
523
|
continue;
|
|
505
524
|
}
|
|
@@ -533,9 +552,7 @@ async function handleMetadataRouteRequest(options) {
|
|
|
533
552
|
});
|
|
534
553
|
if (dynamicParamsResponse) return dynamicParamsResponse;
|
|
535
554
|
}
|
|
536
|
-
|
|
537
|
-
await writeMetadataRouteMiss(options, route, rendered, cached.cachedEntry);
|
|
538
|
-
return rendered.response;
|
|
555
|
+
return renderMetadataRouteMiss(options, route, render, cached.cachedEntry);
|
|
539
556
|
}
|
|
540
557
|
return null;
|
|
541
558
|
}
|
|
@@ -87,4 +87,5 @@ export declare function resolveMiddlewareModuleHandler(mod: MiddlewareModule, op
|
|
|
87
87
|
}): MiddlewareHandler;
|
|
88
88
|
export declare function executeMiddleware(options: ExecuteMiddlewareOptions): Promise<MiddlewareResult>;
|
|
89
89
|
export declare function runGeneratedMiddleware(options: RunGeneratedMiddlewareOptions): Promise<MiddlewareResult>;
|
|
90
|
-
//#endregion
|
|
90
|
+
//#endregion
|
|
91
|
+
export {};
|
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
import { CacheabilityRepresentation } from "./cacheability-manifest.js";
|
|
2
2
|
//#region src/server/multi-stage.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* The origin a shared cache identity names in place of the request's. Next.js
|
|
5
|
+
* keys its response cache by pathname, so one stored response answers every
|
|
6
|
+
* host an app serves. `.invalid` never resolves, so no configured domain or
|
|
7
|
+
* host condition can match it when the identity is replayed.
|
|
8
|
+
*/
|
|
9
|
+
export declare const VINEXT_CACHE_IDENTITY_ORIGIN = "https://cache-identity.vinext.invalid";
|
|
10
|
+
/** Name `origin` in place of a dispatch URL's origin in a shared cache identity. */
|
|
11
|
+
export declare function withCacheIdentityOrigin(requestUrl: string, origin?: string): string;
|
|
3
12
|
/** Whether a response-stage cache must reject a field it did not key itself by. */
|
|
4
13
|
export declare function hasUnsupportedResponseStageVary(headers: Headers, keyedRequestHeaders?: Iterable<string>): boolean;
|
|
5
14
|
/**
|
|
@@ -41,26 +50,58 @@ export type VinextResponseStageDispatchOptions = {
|
|
|
41
50
|
*/
|
|
42
51
|
regeneratesStoredEntry?: boolean;
|
|
43
52
|
/**
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
53
|
+
* Shared cache identity of an App Router GET/HEAD dispatch, or of a Pages
|
|
54
|
+
* page the build found static (getStaticProps or none), supplied only to
|
|
55
|
+
* adapters that declare a `responseStageCacheIdentity` and require
|
|
56
|
+
* completed-response admission. A transport given one partitions
|
|
47
57
|
* its baseline lookup and stored entry by this request's method and complete
|
|
48
58
|
* URL plus these complete serialized props, instead of the dispatched request
|
|
49
|
-
* and props, and replays this identity for background regeneration
|
|
59
|
+
* and props, and replays this identity for background regeneration, or the
|
|
60
|
+
* dispatched request and props when `regenerateFromDispatch` is set.
|
|
50
61
|
* Everything else in the contract above still applies.
|
|
51
62
|
*
|
|
52
|
-
* The identity
|
|
63
|
+
* The identity names `VINEXT_CACHE_IDENTITY_ORIGIN` in place of the
|
|
64
|
+
* request's origin, in its URL and its `requestOrigin`, so one stored
|
|
65
|
+
* response answers every host, as Next.js's pathname-keyed response cache
|
|
66
|
+
* does. That is safe only because completed-response admission refuses a
|
|
67
|
+
* response whose render used a dynamic API, which every App Router read of
|
|
68
|
+
* the request's host is. Core omits the identity for bypassed dispatches.
|
|
69
|
+
*
|
|
70
|
+
* A Pages page identity instead names the configured i18n domain the
|
|
71
|
+
* request's host selects, as vinext's Pages ISR key keeps the domain, and
|
|
72
|
+
* the cache identity origin for every other host. A page without
|
|
73
|
+
* getStaticProps whose page or `_app` getInitialProps turns out to run is
|
|
74
|
+
* refused admission, because its props say the entry is shared across
|
|
75
|
+
* hosts. A getStaticProps page's `_app` getInitialProps shares its entry,
|
|
76
|
+
* as in Next.js, which keys it by path.
|
|
77
|
+
*
|
|
78
|
+
* Under `responseStageCacheIdentity: "query-free"`, an App page identity
|
|
79
|
+
* also drops the user query from the URL and `resolvedUrl`, keeping
|
|
53
80
|
* framework representation selectors: the `.rsc` suffix, the render mode,
|
|
54
|
-
* and, for RSC requests only, the one validated `_rsc` value. That is safe
|
|
55
|
-
* admission refuses a cacheable App page
|
|
56
|
-
* it never read `searchParams`. The
|
|
57
|
-
* query for the render itself.
|
|
58
|
-
*
|
|
59
|
-
*
|
|
81
|
+
* and, for RSC requests only, the one validated `_rsc` value. That is safe
|
|
82
|
+
* only because completed-response admission refuses a cacheable App page
|
|
83
|
+
* response unless its render proved it never read `searchParams`. The
|
|
84
|
+
* dispatched request still carries the real query for the render itself. A
|
|
85
|
+
* page identity keeps the query when a `next.config` public cache policy
|
|
86
|
+
* applies (cached per full URL, as Next.js CDN caching is), and for
|
|
87
|
+
* interception and mounted-slot dispatches.
|
|
60
88
|
*/
|
|
61
89
|
cacheIdentity?: {
|
|
62
90
|
props: unknown;
|
|
91
|
+
/**
|
|
92
|
+
* Set when the identity dropped the user query. A transport stores a
|
|
93
|
+
* page's other part from one render only under such an identity: one
|
|
94
|
+
* that keeps the query is cached per full URL, and stores its own part.
|
|
95
|
+
*/
|
|
96
|
+
queryFree?: true;
|
|
63
97
|
request: Request;
|
|
98
|
+
/**
|
|
99
|
+
* Regenerate from the dispatched request and props. A getStaticProps
|
|
100
|
+
* page's custom `_app` getInitialProps receives the request, host
|
|
101
|
+
* included, so a Pages page regenerates from a real request, as in
|
|
102
|
+
* Next.js, never from the identity's synthetic origin.
|
|
103
|
+
*/
|
|
104
|
+
regenerateFromDispatch?: true;
|
|
64
105
|
};
|
|
65
106
|
};
|
|
66
107
|
export type VinextCacheabilityProbeMode = "probe" | "identity";
|
|
@@ -1,8 +1,20 @@
|
|
|
1
1
|
//#region src/server/multi-stage.ts
|
|
2
|
+
/**
|
|
3
|
+
* The origin a shared cache identity names in place of the request's. Next.js
|
|
4
|
+
* keys its response cache by pathname, so one stored response answers every
|
|
5
|
+
* host an app serves. `.invalid` never resolves, so no configured domain or
|
|
6
|
+
* host condition can match it when the identity is replayed.
|
|
7
|
+
*/
|
|
8
|
+
const VINEXT_CACHE_IDENTITY_ORIGIN = "https://cache-identity.vinext.invalid";
|
|
9
|
+
/** Name `origin` in place of a dispatch URL's origin in a shared cache identity. */
|
|
10
|
+
function withCacheIdentityOrigin(requestUrl, origin = VINEXT_CACHE_IDENTITY_ORIGIN) {
|
|
11
|
+
const url = new URL(requestUrl);
|
|
12
|
+
return `${origin}${url.pathname}${url.search}`;
|
|
13
|
+
}
|
|
2
14
|
/** Whether a response-stage cache must reject a field it did not key itself by. */
|
|
3
15
|
function hasUnsupportedResponseStageVary(headers, keyedRequestHeaders = []) {
|
|
4
16
|
const keyedFields = new Set([...keyedRequestHeaders].map((name) => name.trim().toLowerCase()).filter(Boolean));
|
|
5
17
|
return (headers.get("Vary") ?? "").split(",").map((name) => name.trim().toLowerCase()).filter(Boolean).some((name) => name === "*" || !keyedFields.has(name));
|
|
6
18
|
}
|
|
7
19
|
//#endregion
|
|
8
|
-
export { hasUnsupportedResponseStageVary };
|
|
20
|
+
export { VINEXT_CACHE_IDENTITY_ORIGIN, hasUnsupportedResponseStageVary, withCacheIdentityOrigin };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { stripBasePath } from "../utils/base-path.js";
|
|
2
2
|
import { splitPathnameForRouteMatch } from "../routing/utils.js";
|
|
3
3
|
import { matchRoutePattern, matchRoutePatternPrefix, matchRoutePatternWithOptionalDynamicSegments } from "../routing/route-pattern.js";
|
|
4
|
+
import { resolveHardNavigationTargetFromRscResponse, resolveRscCompatibilityNavigationDecision } from "./app-rsc-cache-busting.js";
|
|
4
5
|
import { AppElementsWire, compareAppElementsSlotIds } from "./app-elements-wire.js";
|
|
5
6
|
import "./app-elements.js";
|
|
6
|
-
import { resolveHardNavigationTargetFromRscResponse, resolveRscCompatibilityNavigationDecision } from "./app-rsc-cache-busting.js";
|
|
7
7
|
import { resolveRscRedirectLifecycleHop, resolveStreamedRscRedirectLifecycleHop } from "./app-browser-rsc-redirect.js";
|
|
8
8
|
import { NavigationTraceReasonCodes, createNavigationLifecycleTraceFields, createNavigationTrace } from "./navigation-trace.js";
|
|
9
9
|
import { verifyOperationTokenForCacheReuse } from "./operation-token.js";
|
|
@@ -65,4 +65,5 @@ export declare function createNavigationLifecycleTraceFields(options: {
|
|
|
65
65
|
}): NavigationTraceFields;
|
|
66
66
|
export declare function createNavigationTrace(code: NavigationTraceCode, fields?: NavigationTraceFields): NavigationTrace;
|
|
67
67
|
export declare function prependNavigationTraceEntry(trace: NavigationTrace, code: NavigationTraceCode, fields?: NavigationTraceFields): NavigationTrace;
|
|
68
|
-
//#endregion
|
|
68
|
+
//#endregion
|
|
69
|
+
export {};
|
|
@@ -24,4 +24,5 @@ export declare function parseNextRedirectDigest(digest: string): NextRedirectDig
|
|
|
24
24
|
* for the fallback form. Returns null otherwise.
|
|
25
25
|
*/
|
|
26
26
|
export declare function parseNextHttpErrorDigest(digest: string): NextHttpErrorDigest | null;
|
|
27
|
-
//#endregion
|
|
27
|
+
//#endregion
|
|
28
|
+
export {};
|
|
@@ -35,4 +35,5 @@ type NitroPublicFilesPluginOptions = {
|
|
|
35
35
|
fetchApp(request: Request): Promise<Response>;
|
|
36
36
|
};
|
|
37
37
|
export declare function createNitroPublicFilesPlugin(options: NitroPublicFilesPluginOptions): (nitroApp: NitroApp) => void;
|
|
38
|
-
//#endregion
|
|
38
|
+
//#endregion
|
|
39
|
+
export {};
|
|
@@ -18,4 +18,5 @@ type PagesWorkerEntry<Env, Context extends object> = {
|
|
|
18
18
|
* fetcher that reads files through Nitro's static handler.
|
|
19
19
|
*/
|
|
20
20
|
export declare function withNitroPagesPublicFiles<Env, Context extends object>(worker: PagesWorkerEntry<Env, Context>): PagesWorkerEntry<Env, Context>;
|
|
21
|
-
//#endregion
|
|
21
|
+
//#endregion
|
|
22
|
+
export {};
|
|
@@ -56,4 +56,5 @@ export type OpenTelemetryApi = {
|
|
|
56
56
|
export declare function getOpenTelemetryRootContext(): OpenTelemetryContext;
|
|
57
57
|
/** Resolve the API registered by the application, if any. */
|
|
58
58
|
export declare function getOpenTelemetryApi(): OpenTelemetryApi | undefined;
|
|
59
|
-
//#endregion
|
|
59
|
+
//#endregion
|
|
60
|
+
export {};
|
|
@@ -36,4 +36,5 @@ export type OperationTokenVerificationPolicy = {
|
|
|
36
36
|
export declare function verifyOperationToken(token: OperationToken, authority: OperationTokenAuthority, policy: OperationTokenVerificationPolicy): OperationTokenVerdict;
|
|
37
37
|
export declare function verifyOperationTokenForCommit(token: OperationToken, authority: Pick<OperationTokenAuthority, "activeNavigationId" | "visibleCommitVersion">): OperationTokenVerdict;
|
|
38
38
|
export declare function verifyOperationTokenForCacheReuse(token: OperationToken, authority: Pick<OperationTokenAuthority, "graphVersion" | "installedCacheVariantFingerprint">): OperationTokenVerdict;
|
|
39
|
-
//#endregion
|
|
39
|
+
//#endregion
|
|
40
|
+
export {};
|
|
@@ -30,6 +30,17 @@ function isEdgeApiRouteModule(module) {
|
|
|
30
30
|
function isNodeApiRouteModule(module) {
|
|
31
31
|
return typeof module.default === "function" && !isEdgeApiRuntime(resolveModuleRuntime(module));
|
|
32
32
|
}
|
|
33
|
+
function withInitialResponseHeaders(response, initialResponseHeaders) {
|
|
34
|
+
if (!initialResponseHeaders || !initialResponseHeaders.keys().next().value) return response;
|
|
35
|
+
const headers = new Headers(initialResponseHeaders);
|
|
36
|
+
for (const [name, value] of response.headers) if (name !== "set-cookie") headers.set(name, value);
|
|
37
|
+
for (const cookie of response.headers.getSetCookie()) headers.append("Set-Cookie", cookie);
|
|
38
|
+
return new Response(response.body, {
|
|
39
|
+
headers,
|
|
40
|
+
status: response.status,
|
|
41
|
+
statusText: response.statusText
|
|
42
|
+
});
|
|
43
|
+
}
|
|
33
44
|
async function handlePagesApiRoute(options) {
|
|
34
45
|
const run = async () => {
|
|
35
46
|
const response = await _handlePagesApiRoute(options);
|
|
@@ -51,22 +62,10 @@ async function _handlePagesApiRoute(options) {
|
|
|
51
62
|
skipTrailingSlashRedirect: options.nextConfig.skipTrailingSlashRedirect
|
|
52
63
|
} } : void 0);
|
|
53
64
|
const response = await tracePagesApiHandler(route.pattern, () => handler(nextRequest));
|
|
54
|
-
if (response instanceof Response)
|
|
55
|
-
const finalized = finalizeEdgeApiResponse(response, options.edgeRuntime ?? "worker");
|
|
56
|
-
if (!options.initialResponseHeaders || !options.initialResponseHeaders.keys().next().value) return finalized;
|
|
57
|
-
const headers = new Headers(options.initialResponseHeaders);
|
|
58
|
-
for (const [name, value] of finalized.headers) if (name.toLowerCase() !== "set-cookie") headers.set(name, value);
|
|
59
|
-
const finalizedCookies = finalized.headers.getSetCookie();
|
|
60
|
-
for (const cookie of finalizedCookies) headers.append("Set-Cookie", cookie);
|
|
61
|
-
return new Response(finalized.body, {
|
|
62
|
-
headers,
|
|
63
|
-
status: finalized.status,
|
|
64
|
-
statusText: finalized.statusText
|
|
65
|
-
});
|
|
66
|
-
}
|
|
65
|
+
if (response instanceof Response) return withInitialResponseHeaders(finalizeEdgeApiResponse(response, options.edgeRuntime ?? "worker"), options.initialResponseHeaders);
|
|
67
66
|
throw new Error("Edge API route did not return a Response");
|
|
68
67
|
}
|
|
69
|
-
if (!isNodeApiRouteModule(route.module)) return new Response("API route does not export a default function", { status: 500 });
|
|
68
|
+
if (!isNodeApiRouteModule(route.module)) return withInitialResponseHeaders(new Response("API route does not export a default function", { status: 500 }), options.initialResponseHeaders);
|
|
70
69
|
const handler = route.module.default;
|
|
71
70
|
const query = buildPagesApiQuery(options.url, params);
|
|
72
71
|
const bodyParserConfig = resolveBodyParserConfig(route.module.config);
|
|
@@ -92,8 +91,12 @@ async function _handlePagesApiRoute(options) {
|
|
|
92
91
|
if (!res.writableEnded) markVinextStreamedApiResponse(response);
|
|
93
92
|
return response;
|
|
94
93
|
};
|
|
95
|
-
const
|
|
94
|
+
const settleHandlerError = (error) => {
|
|
96
95
|
const normalizedError = error instanceof Error ? error : new Error(String(error));
|
|
96
|
+
if (!res.headersSent) return {
|
|
97
|
+
type: "error",
|
|
98
|
+
error: normalizedError
|
|
99
|
+
};
|
|
97
100
|
res.destroy(normalizedError);
|
|
98
101
|
throw normalizedError;
|
|
99
102
|
};
|
|
@@ -101,22 +104,28 @@ async function _handlePagesApiRoute(options) {
|
|
|
101
104
|
type: "response",
|
|
102
105
|
response
|
|
103
106
|
}));
|
|
104
|
-
const handlerCompletion = Promise.resolve().then(() => tracePagesApiHandler(route.pattern, () => handler(req, res), { recordErrors: options.edgeRuntime !== "node" })).then(() => ({ type: "handler" }),
|
|
107
|
+
const handlerCompletion = Promise.resolve().then(() => tracePagesApiHandler(route.pattern, () => handler(req, res), { recordErrors: options.edgeRuntime !== "node" })).then(() => ({ type: "handler" }), settleHandlerError);
|
|
105
108
|
const firstSettled = await Promise.race([responseReady, handlerCompletion]);
|
|
106
109
|
if (firstSettled.type === "response") {
|
|
107
110
|
const handlerLifecycle = handlerCompletion.then(completeHandler, (error) => options.reportRequestError?.(error, route.pattern));
|
|
108
111
|
getRequestExecutionContext()?.waitUntil(handlerLifecycle);
|
|
109
112
|
return finalizeResponse(firstSettled.response);
|
|
110
113
|
}
|
|
114
|
+
if (firstSettled.type === "error") {
|
|
115
|
+
await options.reportRequestError?.(firstSettled.error, route.pattern);
|
|
116
|
+
res.statusCode = 500;
|
|
117
|
+
res.end("Internal Server Error");
|
|
118
|
+
return finalizeResponse(await responsePromise);
|
|
119
|
+
}
|
|
111
120
|
completeHandler();
|
|
112
121
|
return finalizeResponse(await responsePromise);
|
|
113
122
|
} catch (error) {
|
|
114
|
-
if (error instanceof PagesBodyParseError) return new Response(error.message, {
|
|
123
|
+
if (error instanceof PagesBodyParseError) return withInitialResponseHeaders(new Response(error.message, {
|
|
115
124
|
status: error.statusCode,
|
|
116
125
|
statusText: error.message
|
|
117
|
-
});
|
|
126
|
+
}), options.initialResponseHeaders);
|
|
118
127
|
await options.reportRequestError?.(error instanceof Error ? error : new Error(String(error)), route.pattern);
|
|
119
|
-
return internalServerErrorResponse();
|
|
128
|
+
return withInitialResponseHeaders(internalServerErrorResponse(), options.initialResponseHeaders);
|
|
120
129
|
}
|
|
121
130
|
}
|
|
122
131
|
//#endregion
|
|
@@ -1,8 +1,12 @@
|
|
|
1
|
+
import { ClientReferenceChunks } from "../utils/client-reference-chunks.js";
|
|
1
2
|
//#region src/server/pages-client-assets.d.ts
|
|
2
3
|
export type AssetCrossOrigin = "" | "anonymous" | "use-credentials";
|
|
3
4
|
export type PagesClientAssets = {
|
|
4
5
|
clientEntry?: string;
|
|
5
6
|
appBootstrapPreinitModules?: string[];
|
|
7
|
+
appRouteManifestModule?: string;
|
|
8
|
+
/** What each App Router client reference loads in the browser, by URL. */
|
|
9
|
+
appClientReferenceChunks?: ClientReferenceChunks;
|
|
6
10
|
ssrManifest?: Record<string, string[]>;
|
|
7
11
|
/**
|
|
8
12
|
* Shared Pages chunk files (framework, vinext runtime, client entry) keyed on
|
|
@@ -138,4 +138,5 @@ type NormalizePagesDataRequestResult = {
|
|
|
138
138
|
* `runMiddleware` share a single implementation.
|
|
139
139
|
*/
|
|
140
140
|
export declare function normalizePagesDataRequest(request: Request, buildId: string | null, basePath?: string, trailingSlash?: boolean): NormalizePagesDataRequestResult;
|
|
141
|
-
//#endregion
|
|
141
|
+
//#endregion
|
|
142
|
+
export {};
|
|
@@ -26,4 +26,5 @@ export declare function extractDocumentAssetProps(html: string, token: string):
|
|
|
26
26
|
export declare function markDocumentAssetPropsProtectedTags(html: string, markerAttribute: string): string;
|
|
27
27
|
export declare function stripDocumentAssetPropsProtectionMarkers(html: string, markerAttribute: string): string;
|
|
28
28
|
export declare function applyDocumentAssetProps(html: string, props: DocumentAssetProps, options?: ApplyDocumentAssetPropsOptions): string;
|
|
29
|
-
//#endregion
|
|
29
|
+
//#endregion
|
|
30
|
+
export {};
|
|
@@ -78,4 +78,5 @@ type RunDocumentRenderPageResult = {
|
|
|
78
78
|
* @see .nextjs-ref/packages/next/src/server/render.tsx (search `renderPage`)
|
|
79
79
|
*/
|
|
80
80
|
export declare function runDocumentRenderPage(input: DocumentRenderPageInput): Promise<RunDocumentRenderPageResult>;
|
|
81
|
-
//#endregion
|
|
81
|
+
//#endregion
|
|
82
|
+
export {};
|
|
@@ -37,4 +37,5 @@ export declare function createFindPageComponentsSpanDescriptor(routePattern: str
|
|
|
37
37
|
readonly type: "NextNodeServer.findPageComponents";
|
|
38
38
|
};
|
|
39
39
|
export declare function traceFindPageComponents<T>(routePattern: string, callback: () => T): T;
|
|
40
|
-
//#endregion
|
|
40
|
+
//#endregion
|
|
41
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
1
2
|
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
2
3
|
import { frameworkTracer } from "./tracer.js";
|
|
3
|
-
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
4
4
|
//#region src/server/pages-execution-tracing.ts
|
|
5
5
|
function createPagesDataSpanDescriptor(method, routePattern) {
|
|
6
6
|
const route = patternToNextFormat(routePattern);
|