vinext 1.3.0 → 1.3.1
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/dist/_virtual/_rolldown/runtime.js +1 -1
- 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/layout-classification.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 +5 -4
- package/dist/build/report.d.ts +2 -1
- package/dist/build/route-classification-injector.d.ts +2 -1
- package/dist/build/route-classification-manifest.d.ts +2 -1
- 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 +4 -0
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli.js +2 -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/index.js +1 -2
- package/dist/client/instrumentation-client-state.js +5 -5
- package/dist/client/navigation-runtime.d.ts +3 -1
- package/dist/client/navigation-runtime.js +1 -1
- 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 +13 -1
- package/dist/config/next-config.js +29 -4
- package/dist/config/tsconfig-paths.d.ts +2 -1
- 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/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 +42 -12
- package/dist/entries/app-rsc-manifest.d.ts +2 -1
- package/dist/entries/app-rsc-manifest.js +53 -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 +1 -1
- 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 +102 -34
- 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/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/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 +2 -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/worker-image-imports.js +1 -1
- package/dist/plugins/worker-use-server.d.ts +2 -1
- package/dist/routing/app-route-graph.d.ts +40 -0
- package/dist/routing/app-route-graph.js +122 -50
- 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/app-action-forwarding.d.ts +2 -1
- package/dist/server/app-bfcache-identity.d.ts +2 -1
- package/dist/server/app-browser-action-result.d.ts +2 -1
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
- package/dist/server/app-browser-entry.js +30 -6
- package/dist/server/app-browser-error.d.ts +2 -1
- package/dist/server/app-browser-history-controller.d.ts +2 -1
- 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.js +15 -10
- 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-server-action-client.d.ts +2 -1
- package/dist/server/app-browser-state.js +1 -1
- package/dist/server/app-browser-stream.d.ts +2 -1
- package/dist/server/app-browser-visible-commit.d.ts +2 -1
- 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 +2 -1
- package/dist/server/app-elements.d.ts +2 -0
- package/dist/server/app-elements.js +3 -1
- 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 +2 -1
- package/dist/server/app-inline-css-client.d.ts +2 -1
- package/dist/server/app-layout-param-observation.d.ts +2 -1
- package/dist/server/app-metadata-tracing.d.ts +2 -1
- package/dist/server/app-optimistic-routing.d.ts +18 -1
- package/dist/server/app-optimistic-routing.js +34 -1
- package/dist/server/app-page-boundary-render.d.ts +20 -2
- package/dist/server/app-page-boundary-render.js +221 -38
- package/dist/server/app-page-boundary.d.ts +34 -5
- package/dist/server/app-page-boundary.js +40 -7
- package/dist/server/app-page-cache-finalizer.d.ts +2 -1
- package/dist/server/app-page-cache-finalizer.js +1 -1
- 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.js +2 -2
- package/dist/server/app-page-dispatch.d.ts +34 -1
- package/dist/server/app-page-dispatch.js +163 -34
- package/dist/server/app-page-element-builder.d.ts +17 -1
- package/dist/server/app-page-element-builder.js +187 -66
- package/dist/server/app-page-execution.d.ts +28 -1
- package/dist/server/app-page-execution.js +114 -5
- package/dist/server/app-page-head.d.ts +95 -3
- package/dist/server/app-page-head.js +307 -152
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
- package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
- package/dist/server/app-page-method.d.ts +2 -1
- package/dist/server/app-page-probe.d.ts +2 -1
- package/dist/server/app-page-render-identity.d.ts +2 -1
- package/dist/server/app-page-render.d.ts +7 -1
- package/dist/server/app-page-render.js +35 -10
- package/dist/server/app-page-request.d.ts +14 -1
- package/dist/server/app-page-request.js +1 -1
- package/dist/server/app-page-route-wiring.d.ts +52 -2
- package/dist/server/app-page-route-wiring.js +197 -47
- package/dist/server/app-page-rsc-render-status.d.ts +2 -1
- 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 +31 -1
- package/dist/server/app-page-stream.js +23 -4
- package/dist/server/app-pages-bridge.d.ts +2 -1
- 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 +11 -1
- package/dist/server/app-render-dependency.js +26 -7
- 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-dispatch.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.js +1 -1
- package/dist/server/app-route-handler-execution.d.ts +2 -1
- package/dist/server/app-route-handler-response.d.ts +2 -1
- package/dist/server/app-route-handler-runtime.d.ts +2 -1
- 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-error-handler.d.ts +2 -1
- package/dist/server/app-rsc-errors.d.ts +2 -1
- package/dist/server/app-rsc-handler.d.ts +2 -1
- package/dist/server/app-rsc-handler.js +6 -10
- package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
- 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 +2 -1
- package/dist/server/app-server-action-execution.js +3 -3
- package/dist/server/app-ssr-entry.d.ts +6 -0
- package/dist/server/app-ssr-entry.js +91 -44
- 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 +299 -67
- 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 +2 -1
- package/dist/server/app-worker-stages.d.ts +2 -1
- package/dist/server/artifact-compatibility.d.ts +2 -1
- package/dist/server/bfcache-identity.d.ts +2 -1
- package/dist/server/cache-headers.d.ts +2 -1
- package/dist/server/cacheability-request.d.ts +2 -1
- package/dist/server/client-reuse-manifest.d.ts +2 -1
- 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 +10 -3
- 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/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/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 +1 -1
- package/dist/server/metadata-routes.d.ts +2 -1
- package/dist/server/middleware-runtime.d.ts +2 -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-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-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 +16 -7
- 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 +2 -1
- package/dist/server/pages-request-pipeline.js +4 -5
- package/dist/server/pages-request-stage-entry.d.ts +2 -1
- package/dist/server/pages-response-stage-entry.d.ts +2 -1
- 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 +9 -3
- package/dist/server/request-log.d.ts +2 -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/static-file-cache.d.ts +2 -1
- package/dist/server/static-file-cache.js +1 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
- package/dist/server/worker-revalidation-context.d.ts +2 -1
- package/dist/server/worker-stages.d.ts +2 -1
- 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 +29 -9
- 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-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/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/error-boundary.d.ts +39 -3
- package/dist/shims/error-boundary.js +31 -16
- 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 +1 -1
- 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/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 +195 -52
- package/dist/shims/metadata.d.ts +32 -11
- package/dist/shims/metadata.js +88 -26
- package/dist/shims/navigation-errors.d.ts +2 -1
- package/dist/shims/navigation.d.ts +22 -2
- package/dist/shims/navigation.js +74 -20
- package/dist/shims/pages-router-runtime.d.ts +2 -1
- package/dist/shims/ppr-fallback-shell.d.ts +2 -1
- package/dist/shims/router.js +14 -3
- package/dist/shims/unified-request-context.js +3 -3
- package/dist/typegen.d.ts +2 -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 +2 -1
- package/dist/utils/project.js +9 -1
- package/dist/utils/query.d.ts +2 -1
- package/dist/utils/sorted-array.d.ts +2 -1
- package/dist/utils/vite-cli-invocation.d.ts +2 -1
- package/package.json +5 -5
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
- 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
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
2
|
import fs from "node:fs";
|
|
3
|
+
import os from "node:os";
|
|
3
4
|
//#region src/server/dev-lockfile.ts
|
|
4
5
|
/**
|
|
5
6
|
* Dev server lock file.
|
|
@@ -21,6 +22,9 @@ import fs from "node:fs";
|
|
|
21
22
|
* (`process.kill(pid, 0)`), which is good enough for the dev-server
|
|
22
23
|
* "another server is running" use case. Race conditions on lock acquisition
|
|
23
24
|
* are tolerated: at worst, two dev servers race and one fails to bind a port.
|
|
25
|
+
* Unlike a `flock()`, the lock file survives a hard restart, so a lock
|
|
26
|
+
* written before the current boot is treated as stale whatever its PID: the
|
|
27
|
+
* PID may now belong to an unrelated process. See `predatesCurrentBoot()`.
|
|
24
28
|
* - Lock file lives in `<root>/.vinext/dev/lock.json` (mirroring Next.js'
|
|
25
29
|
* `.next/dev/lock` layout). `.vinext/` is already used by the fonts plugin
|
|
26
30
|
* to cache self-hosted Google Fonts, so this re-uses the same project-local
|
|
@@ -71,6 +75,46 @@ function isPidAlive(pid) {
|
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
/**
|
|
78
|
+
* Slack for the boot-time comparison in `predatesCurrentBoot`. `os.uptime()`
|
|
79
|
+
* has whole-second resolution on some platforms (macOS derives it from
|
|
80
|
+
* `kern.boottime`), so the derived boot time is only accurate to about a
|
|
81
|
+
* second.
|
|
82
|
+
*/
|
|
83
|
+
const BOOT_TIME_TOLERANCE_MS = 5e3;
|
|
84
|
+
/**
|
|
85
|
+
* Returns true if a lock with the given `startedAt` was written before the
|
|
86
|
+
* machine last booted.
|
|
87
|
+
*
|
|
88
|
+
* Such a lock was left behind by a session whose exit handler never ran (a
|
|
89
|
+
* crash, a forced restart, power loss). PIDs are handed out again after a
|
|
90
|
+
* boot, so the lock's PID may be held by an unrelated process, and
|
|
91
|
+
* `isPidAlive()` alone would report the dead server as running.
|
|
92
|
+
*
|
|
93
|
+
* The boot time is derived from `Date.now() - os.uptime()`. Stepping the wall
|
|
94
|
+
* clock forward moves it too (`os.uptime()` doesn't change), so a forward
|
|
95
|
+
* step larger than the uptime at which a server started makes its lock look
|
|
96
|
+
* stale, e.g. a VM resuming after the host slept. The second `vinext dev`
|
|
97
|
+
* then takes over, as in the acquisition race tolerated below: Vite moves it
|
|
98
|
+
* to another port, or it fails to bind with `strictPort`.
|
|
99
|
+
*
|
|
100
|
+
* Known limitations, where a lock is still checked by PID alone:
|
|
101
|
+
* - A wall clock that comes back from a reboot behind the previous session
|
|
102
|
+
* (an RTC running slow, or NTP stepping it back) can leave the lock's
|
|
103
|
+
* `startedAt` after the derived boot time.
|
|
104
|
+
* - Windows Fast Startup shuts down by hibernating the kernel, so
|
|
105
|
+
* `os.uptime()` keeps counting across that shutdown.
|
|
106
|
+
* - A container restart doesn't reset the host's uptime.
|
|
107
|
+
*/
|
|
108
|
+
function predatesCurrentBoot(startedAt) {
|
|
109
|
+
let uptime;
|
|
110
|
+
try {
|
|
111
|
+
uptime = os.uptime();
|
|
112
|
+
} catch {
|
|
113
|
+
return false;
|
|
114
|
+
}
|
|
115
|
+
return startedAt < Date.now() - uptime * 1e3 - BOOT_TIME_TOLERANCE_MS;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
74
118
|
* Writes the lock file with the given content. Creates the parent directory
|
|
75
119
|
* if it doesn't exist.
|
|
76
120
|
*
|
|
@@ -128,7 +172,7 @@ function tryAcquireLockfile(opts) {
|
|
|
128
172
|
const lockfilePath = getLockfilePath(root);
|
|
129
173
|
const existing = readLockfile(lockfilePath);
|
|
130
174
|
if (existing) {
|
|
131
|
-
if (isPidAlive(existing.pid)) return {
|
|
175
|
+
if (!predatesCurrentBoot(existing.startedAt) && isPidAlive(existing.pid)) return {
|
|
132
176
|
ok: false,
|
|
133
177
|
existing,
|
|
134
178
|
lockfilePath
|
|
@@ -178,4 +222,4 @@ function tryAcquireLockfile(opts) {
|
|
|
178
222
|
};
|
|
179
223
|
}
|
|
180
224
|
//#endregion
|
|
181
|
-
export { formatAlreadyRunningError, getLockfilePath, isPidAlive, readLockfile, tryAcquireLockfile };
|
|
225
|
+
export { formatAlreadyRunningError, getLockfilePath, isPidAlive, predatesCurrentBoot, readLockfile, tryAcquireLockfile };
|
|
@@ -41,7 +41,7 @@ import { PAGES_PREVIEW_CACHE_CONTROL, appendPagesPreviewClearCookies, getPagesPr
|
|
|
41
41
|
import { attachPagesRequestCookies } from "./pages-node-compat.js";
|
|
42
42
|
import { randomUUID } from "node:crypto";
|
|
43
43
|
import React from "react";
|
|
44
|
-
import { renderToReadableStream } from "react-dom/server
|
|
44
|
+
import { renderToReadableStream } from "react-dom/server";
|
|
45
45
|
//#region src/server/dev-server.ts
|
|
46
46
|
/**
|
|
47
47
|
* Render a React element to a string using renderToReadableStream.
|
|
@@ -112,6 +112,7 @@ function writeGsspRedirect(res, redirect, isDataReq, props, options) {
|
|
|
112
112
|
...props,
|
|
113
113
|
pageProps: props.pageProps
|
|
114
114
|
});
|
|
115
|
+
if (options.method === "getServerSideProps" && !res.getHeader("Cache-Control")) res.setHeader("Cache-Control", NEVER_CACHE_CONTROL);
|
|
115
116
|
const gsspHeaders = Object.fromEntries(Object.entries(res.getHeaders()).filter((entry) => entry[1] !== void 0));
|
|
116
117
|
if (isDangerousScheme(resolved.destination)) {
|
|
117
118
|
const deploymentId = process.env.__VINEXT_DEPLOYMENT_ID || process.env.NEXT_DEPLOYMENT_ID;
|
|
@@ -643,14 +644,17 @@ function createSSRHandler(server, runner, routes, pagesDir, i18nConfig, fileMatc
|
|
|
643
644
|
const deploymentId = process.env.__VINEXT_DEPLOYMENT_ID || process.env.NEXT_DEPLOYMENT_ID;
|
|
644
645
|
stripDevPagesNotFoundFramingHeaders(res);
|
|
645
646
|
if (!res.hasHeader("Content-Type")) res.setHeader("Content-Type", "application/json");
|
|
647
|
+
if (!res.getHeader("Cache-Control")) res.setHeader("Cache-Control", NEVER_CACHE_CONTROL);
|
|
646
648
|
if (deploymentId && !res.hasHeader("x-nextjs-deployment-id")) res.setHeader(NEXTJS_DEPLOYMENT_ID_HEADER, deploymentId);
|
|
647
649
|
res.writeHead(404);
|
|
648
650
|
res.end("{\"notFound\":true}");
|
|
649
651
|
return;
|
|
650
652
|
}
|
|
653
|
+
if (!res.getHeader("Cache-Control")) res.setHeader("Cache-Control", NEVER_CACHE_CONTROL);
|
|
651
654
|
await renderErrorPage(server, runner, req, res, url, pagesDir, 404, routerShim.wrapWithRouterContext, void 0, void 0, reactStrictMode, {
|
|
652
655
|
...errorPageContext,
|
|
653
|
-
notFoundSrcPage: patternToNextFormat(route.pattern)
|
|
656
|
+
notFoundSrcPage: patternToNextFormat(route.pattern),
|
|
657
|
+
cacheControl: requestPreview.data === false && !requestPreview.shouldClear ? DEV_PAGES_CACHE_CONTROL : PAGES_PREVIEW_CACHE_CONTROL
|
|
654
658
|
});
|
|
655
659
|
return;
|
|
656
660
|
}
|
|
@@ -1130,7 +1134,8 @@ async function renderErrorPage(server, runner, req, res, url, pagesDir, statusCo
|
|
|
1130
1134
|
getTailHeadHTML: () => getClientTraceMetadataHTML(context.clientTraceMetadata),
|
|
1131
1135
|
setDocumentInitialHead: typeof headShim.setDocumentInitialHead === "function" ? headShim.setDocumentInitialHead : void 0,
|
|
1132
1136
|
crossOrigin: context.crossOrigin,
|
|
1133
|
-
preserveExistingContentType: statusCode === 404
|
|
1137
|
+
preserveExistingContentType: statusCode === 404,
|
|
1138
|
+
extraHeaders: context.cacheControl ? { "Cache-Control": context.cacheControl } : void 0
|
|
1134
1139
|
});
|
|
1135
1140
|
else {
|
|
1136
1141
|
const bodyHtml = await tracePagesDocument(errorPage, () => renderToStringAsync(element));
|
|
@@ -1155,6 +1160,7 @@ async function renderErrorPage(server, runner, req, res, url, pagesDir, statusCo
|
|
|
1155
1160
|
configuredCrossOrigin: context.crossOrigin,
|
|
1156
1161
|
protectedAssetMarker
|
|
1157
1162
|
}), protectedAssetMarker);
|
|
1163
|
+
if (context.cacheControl) res.setHeader("Cache-Control", context.cacheControl);
|
|
1158
1164
|
res.writeHead(statusCode, statusCode === 404 && res.hasHeader("Content-Type") ? void 0 : { "Content-Type": "text/html; charset=utf-8" });
|
|
1159
1165
|
res.end(transformedHtml);
|
|
1160
1166
|
}
|
|
@@ -1173,6 +1179,7 @@ async function renderErrorPage(server, runner, req, res, url, pagesDir, statusCo
|
|
|
1173
1179
|
defaultResponse.headers.forEach((value, key) => {
|
|
1174
1180
|
headers[key] = value;
|
|
1175
1181
|
});
|
|
1182
|
+
if (context.cacheControl) headers["cache-control"] = context.cacheControl;
|
|
1176
1183
|
res.writeHead(defaultResponse.status, headers);
|
|
1177
1184
|
res.end(await defaultResponse.text());
|
|
1178
1185
|
return;
|
|
@@ -24,4 +24,5 @@ type FileBasedMetadataOptions = {
|
|
|
24
24
|
basePath?: string;
|
|
25
25
|
};
|
|
26
26
|
export declare function applyFileBasedMetadata(metadata: Metadata | null, routePath: string, params: AppPageParams, metadataRoutes: readonly MetadataFileRoute[] | null | undefined, options?: FileBasedMetadataOptions): Promise<Metadata | null>;
|
|
27
|
-
//#endregion
|
|
27
|
+
//#endregion
|
|
28
|
+
export {};
|
|
@@ -43,4 +43,5 @@ export type FrameworkTracer = {
|
|
|
43
43
|
};
|
|
44
44
|
export declare function recordFrameworkSpanError(span: FrameworkSpan, error: unknown): void;
|
|
45
45
|
export declare function createFrameworkTracer(integrations: readonly FrameworkTracingIntegration[]): FrameworkTracer;
|
|
46
|
-
//#endregion
|
|
46
|
+
//#endregion
|
|
47
|
+
export {};
|
package/dist/server/html.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
//#region src/server/html.d.ts
|
|
2
2
|
export declare function safeJsonStringify(data: unknown): string;
|
|
3
|
+
export declare function scriptSafeJsonStringify(data: unknown): string;
|
|
3
4
|
export declare function escapeHtmlAttr(value: string): string;
|
|
4
5
|
export declare function htmlTokenListContains(value: string | null, token: string): boolean;
|
|
5
6
|
export declare function createNonceAttribute(nonce?: string): string;
|
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 {};
|
|
@@ -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 {};
|
|
@@ -17,8 +17,8 @@ import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchSoftTags } from
|
|
|
17
17
|
import { isValidMetadataImageId, manifestToJson, matchMetadataRoutePattern, robotsToText, sitemapToXml } from "./metadata-routes.js";
|
|
18
18
|
import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
|
|
19
19
|
import { canonicalizeAppPageParams } from "./app-page-segment-state.js";
|
|
20
|
-
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
21
20
|
import { buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
|
|
21
|
+
import { buildPageCacheTags } from "./implicit-tags.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
|
|
@@ -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 {};
|
|
@@ -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 {};
|
|
@@ -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);
|
|
@@ -298,6 +298,11 @@ type ResolvePagesPageDataNotFoundResult = {
|
|
|
298
298
|
cacheState?: "MISS" | "HIT" | "STALE";
|
|
299
299
|
};
|
|
300
300
|
type ResolvePagesPageDataResult = ResolvePagesPageDataRenderResult | ResolvePagesPageDataResponseResult | ResolvePagesPageDataNotFoundResult;
|
|
301
|
+
/**
|
|
302
|
+
* Write a Pages res header the way Node sends it: an array sends one header
|
|
303
|
+
* line per item, so `[]` sends none.
|
|
304
|
+
*/
|
|
305
|
+
export declare function setPagesResponseHeader(headers: Headers, name: string, value: string | number | boolean | string[]): void;
|
|
301
306
|
export declare function mergePagesNotFoundSourceHeaders(response: Response, sourceHeaders: Record<string, string | number | boolean | string[]> | undefined): Response;
|
|
302
307
|
/** Validate and normalize the redirect metadata returned by gSP/gSSP. */
|
|
303
308
|
export declare function resolvePagesRedirect(redirect: PagesRedirectResult, options: {
|
|
@@ -330,4 +335,5 @@ export type PagesRouteParam = {
|
|
|
330
335
|
export declare function getPagesRouteParams(routePattern: string): PagesRouteParam[];
|
|
331
336
|
export declare function matchesPagesStaticPath(pathEntry: PagesStaticPathsEntry, params: Record<string, unknown>, routeParams: PagesRouteParam[], routeUrl: string, i18n?: Pick<PagesI18nRenderContext, "locale" | "locales" | "defaultLocale">): boolean;
|
|
332
337
|
export declare function resolvePagesPageData(options: ResolvePagesPageDataOptions): Promise<ResolvePagesPageDataResult>;
|
|
333
|
-
//#endregion
|
|
338
|
+
//#endregion
|
|
339
|
+
export {};
|
|
@@ -6,7 +6,7 @@ import { isDangerousScheme } from "../shims/url-safety.js";
|
|
|
6
6
|
import { extractLocaleFromUrl } from "./pages-i18n.js";
|
|
7
7
|
import { buildNextDataPropsJsonResponse } from "./pages-data-route.js";
|
|
8
8
|
import { recordRouteCacheability } from "../shims/cacheability-classification.js";
|
|
9
|
-
import { applyCdnResponseHeaders } from "./cache-control.js";
|
|
9
|
+
import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders } from "./cache-control.js";
|
|
10
10
|
import { buildMissIsrCacheControl, decideIsr } from "./isr-decision.js";
|
|
11
11
|
import { isrCacheControl } from "./isr-cache.js";
|
|
12
12
|
import { normalizeStaticPathname } from "../routing/route-pattern.js";
|
|
@@ -98,14 +98,22 @@ function buildPagesNotFoundResult(options, revalidateSeconds, cacheState, expire
|
|
|
98
98
|
responseHeaders
|
|
99
99
|
};
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* Write a Pages res header the way Node sends it: an array sends one header
|
|
103
|
+
* line per item, so `[]` sends none.
|
|
104
|
+
*/
|
|
105
|
+
function setPagesResponseHeader(headers, name, value) {
|
|
106
|
+
headers.delete(name);
|
|
107
|
+
if (!Array.isArray(value)) {
|
|
108
|
+
headers.set(name, String(value));
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
for (const item of value) headers.append(name, String(item));
|
|
112
|
+
}
|
|
101
113
|
function mergePagesNotFoundSourceHeaders(response, sourceHeaders) {
|
|
102
114
|
if (!sourceHeaders) return response;
|
|
103
115
|
const headers = new Headers(response.headers);
|
|
104
|
-
for (const [name, value] of Object.entries(sourceHeaders))
|
|
105
|
-
headers.delete("set-cookie");
|
|
106
|
-
const cookies = Array.isArray(value) ? value : [value];
|
|
107
|
-
for (const cookie of cookies) headers.append("set-cookie", String(cookie));
|
|
108
|
-
} else headers.set(name, Array.isArray(value) ? value.join(", ") : String(value));
|
|
116
|
+
for (const [name, value] of Object.entries(sourceHeaders)) setPagesResponseHeader(headers, name, value);
|
|
109
117
|
return new Response(response.body, {
|
|
110
118
|
headers,
|
|
111
119
|
status: response.status,
|
|
@@ -292,6 +300,15 @@ function buildPagesRedirectResponse(redirect, options, props = { pageProps: {} }
|
|
|
292
300
|
headers
|
|
293
301
|
});
|
|
294
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* Next.js pages-handler.ts gives a getServerSideProps result `revalidate: 0`,
|
|
305
|
+
* so its redirect and notFound exits are answered private/no-store unless the
|
|
306
|
+
* handler set its own Cache-Control. Like Next's `!res.getHeader(...)`, this
|
|
307
|
+
* reads the raw value, so `""` and `0` count as unset.
|
|
308
|
+
*/
|
|
309
|
+
function applyPagesGsspCacheControlDefault(headers, res) {
|
|
310
|
+
if (!res.getHeaders()["cache-control"]) headers.set("Cache-Control", NEVER_CACHE_CONTROL);
|
|
311
|
+
}
|
|
295
312
|
function getPagesGsspResponseHeaders(res) {
|
|
296
313
|
const headers = new Headers();
|
|
297
314
|
for (const [name, value] of Object.entries(res.getHeaders())) if (Array.isArray(value)) for (const item of value) headers.append(name, item);
|
|
@@ -566,13 +583,19 @@ async function resolvePagesPageData(options) {
|
|
|
566
583
|
pageProps
|
|
567
584
|
};
|
|
568
585
|
}
|
|
569
|
-
if (result?.redirect)
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
586
|
+
if (result?.redirect) {
|
|
587
|
+
const responseHeaders = getPagesGsspResponseHeaders(res);
|
|
588
|
+
applyPagesGsspCacheControlDefault(responseHeaders, res);
|
|
589
|
+
return {
|
|
590
|
+
kind: "response",
|
|
591
|
+
response: buildPagesRedirectResponse(result.redirect, options, renderProps, "getServerSideProps", responseHeaders)
|
|
592
|
+
};
|
|
593
|
+
}
|
|
573
594
|
if (result?.notFound) {
|
|
574
595
|
const responseHeaders = res.getHeaders();
|
|
575
|
-
|
|
596
|
+
const notFoundResult = buildPagesNotFoundResult(options, void 0, void 0, void 0, Object.keys(responseHeaders).length > 0 ? responseHeaders : void 0);
|
|
597
|
+
if (notFoundResult.kind === "response") applyPagesGsspCacheControlDefault(notFoundResult.response.headers, res);
|
|
598
|
+
return notFoundResult;
|
|
576
599
|
}
|
|
577
600
|
if (result?.props !== void 0 && options.validatePropsSerialization !== false) isSerializableProps(options.routePattern, "getServerSideProps", pageProps);
|
|
578
601
|
gsspRes = res;
|
|
@@ -796,4 +819,4 @@ async function resolvePagesPageData(options) {
|
|
|
796
819
|
};
|
|
797
820
|
}
|
|
798
821
|
//#endregion
|
|
799
|
-
export { assertPages404DoesNotReturnNotFound, buildPagesRedirectProps, getPagesRouteParams, matchesPagesStaticPath, mergePagesDataProps, mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesRedirect, resolvePagesRedirectLocation, resolvePagesRevalidateSeconds, resolvePagesStatusPageRenderPath };
|
|
822
|
+
export { assertPages404DoesNotReturnNotFound, buildPagesRedirectProps, getPagesRouteParams, matchesPagesStaticPath, mergePagesDataProps, mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesRedirect, resolvePagesRedirectLocation, resolvePagesRevalidateSeconds, resolvePagesStatusPageRenderPath, setPagesResponseHeader };
|
|
@@ -97,7 +97,7 @@ export type CreatePagesPageHandlerOptions = {
|
|
|
97
97
|
href: string;
|
|
98
98
|
type: string;
|
|
99
99
|
}>;
|
|
100
|
-
/** `renderToReadableStream` from `react-dom/server
|
|
100
|
+
/** `renderToReadableStream` from `react-dom/server`. */
|
|
101
101
|
renderToReadableStream: (element: ReactNode) => Promise<ReadableStream<Uint8Array>>;
|
|
102
102
|
/** `safeJsonStringify` from `vinext/html`. */
|
|
103
103
|
safeJsonStringify: (value: unknown) => string;
|
|
@@ -139,4 +139,5 @@ type RenderPageOptions = {
|
|
|
139
139
|
* accepts the same options shape the generated entry always passed inline.
|
|
140
140
|
*/
|
|
141
141
|
export declare function createPagesPageHandler(opts: CreatePagesPageHandlerOptions): (request: Request, url: string, manifest: Record<string, string[]> | null | undefined, middlewareHeaders: Headers | null | undefined, options: RenderPageOptions | null | undefined, initialResponseHeaders?: Headers) => Promise<Response>;
|
|
142
|
-
//#endregion
|
|
142
|
+
//#endregion
|
|
143
|
+
export {};
|
|
@@ -10,7 +10,7 @@ import { buildNextDataNotFoundResponse, buildNextDataPropsJsonResponse, normaliz
|
|
|
10
10
|
import { reportRequestError } from "./instrumentation.js";
|
|
11
11
|
import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
|
|
12
12
|
import { beginRouteCacheability, isRouteCacheabilityIdentityProbe, isRouteCacheabilityProbe, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityFinalResponseUncacheable, recordRouteCacheability } from "../shims/cacheability-classification.js";
|
|
13
|
-
import { BROWSER_REVALIDATE_CACHE_CONTROL, NEVER_CACHE_CONTROL, STATIC_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy, shouldUseNextDeployCacheControl } from "./cache-control.js";
|
|
13
|
+
import { BROWSER_REVALIDATE_CACHE_CONTROL, NEVER_CACHE_CONTROL, STATIC_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy, hasExplicitNonCacheableResponsePolicy, isCdnResponsePolicyHeader, shouldUseNextDeployCacheControl } from "./cache-control.js";
|
|
14
14
|
import { buildMissIsrCacheControl } from "./isr-decision.js";
|
|
15
15
|
import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
|
|
16
16
|
import { coalesceOnDemandRevalidation, isrGet, isrSet, pagesIsrCacheKey, triggerBackgroundRegeneration } from "./isr-cache.js";
|
|
@@ -25,7 +25,7 @@ import { pagesPathCacheTag } from "./pages-cache-tag.js";
|
|
|
25
25
|
import { renderPagesPageResponse } from "./pages-page-response.js";
|
|
26
26
|
import { hasPagesGetInitialProps } from "./pages-get-initial-props.js";
|
|
27
27
|
import { traceFindPageComponents, tracePagesDocumentStream } from "./pages-execution-tracing.js";
|
|
28
|
-
import { mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesStatusPageRenderPath } from "./pages-page-data.js";
|
|
28
|
+
import { mergePagesNotFoundSourceHeaders, resolvePagesPageData, resolvePagesStatusPageRenderPath, setPagesResponseHeader } from "./pages-page-data.js";
|
|
29
29
|
import { collectAssetTags, resolveClientModuleUrl } from "./pages-asset-tags.js";
|
|
30
30
|
import { PAGES_PREVIEW_CACHE_CONTROL, appendPagesPreviewClearCookies, getPagesPreviewState } from "./pages-preview.js";
|
|
31
31
|
import { createPagesReqRes } from "./pages-node-compat.js";
|
|
@@ -87,14 +87,23 @@ function stripPagesNotFoundFramingHeaders(response) {
|
|
|
87
87
|
statusText: response.statusText
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
-
|
|
90
|
+
/**
|
|
91
|
+
* `notFoundResHeaders` is the getServerSideProps res as it stands after the
|
|
92
|
+
* 404 render: the middleware and next.config headers, the handler's writes,
|
|
93
|
+
* then any write from the 404 render's own user code.
|
|
94
|
+
*/
|
|
95
|
+
function applyPagesErrorCachePolicy(response, revalidateSeconds, expireSeconds, cacheTagPathname, notFoundResHeaders) {
|
|
91
96
|
const headers = new Headers(response.headers);
|
|
92
97
|
recordRouteCacheability(revalidateSeconds === void 0 ? { cacheable: false } : {
|
|
93
98
|
cacheable: revalidateSeconds !== 0,
|
|
94
99
|
cacheControl: buildMissIsrCacheControl(revalidateSeconds, expireSeconds)
|
|
95
100
|
});
|
|
96
101
|
if (hasExplicitNonCacheableResponsePolicy(headers)) return response;
|
|
97
|
-
if (revalidateSeconds === void 0)
|
|
102
|
+
if (revalidateSeconds === void 0 && notFoundResHeaders?.["cache-control"]) {
|
|
103
|
+
const policyHeaderNames = Array.from(headers.keys()).filter(isCdnResponsePolicyHeader);
|
|
104
|
+
for (const name of policyHeaderNames) headers.delete(name);
|
|
105
|
+
for (const [name, value] of Object.entries(notFoundResHeaders)) if (isCdnResponsePolicyHeader(name)) setPagesResponseHeader(headers, name, value);
|
|
106
|
+
} else if (revalidateSeconds === void 0) applyCdnResponseHeaders(headers, { cacheControl: NEVER_CACHE_CONTROL });
|
|
98
107
|
else applyCdnResponseHeaders(headers, {
|
|
99
108
|
cacheControl: buildMissIsrCacheControl(revalidateSeconds, expireSeconds),
|
|
100
109
|
tags: [pagesPathCacheTag(cacheTagPathname)]
|
|
@@ -364,7 +373,7 @@ function createPagesPageHandler(opts) {
|
|
|
364
373
|
}
|
|
365
374
|
};
|
|
366
375
|
const scriptNonce = getScriptNonceFromHeaderSources(request.headers, middlewareHeaders);
|
|
367
|
-
const browserCacheControl = isStaticPropsRoute && !scriptNonce ? (initialResponseHeaders ?? middlewareHeaders)?.get("Cache-Control") : null;
|
|
376
|
+
const browserCacheControl = isStaticPropsRoute && !scriptNonce && !options?.__notFoundSourceHeaders ? (initialResponseHeaders ?? middlewareHeaders)?.get("Cache-Control") : null;
|
|
368
377
|
const withBrowserPolicy = (response) => {
|
|
369
378
|
if (browserCacheControl) response.headers.set("Cache-Control", browserCacheControl);
|
|
370
379
|
return response;
|
|
@@ -590,7 +599,7 @@ function createPagesPageHandler(opts) {
|
|
|
590
599
|
if (pageDataResult.kind === "response") {
|
|
591
600
|
if (sendsEarly && pageResponseSent()) return pageDataResult.response;
|
|
592
601
|
let response = isOnDemandRevalidate && pageDataResult.onDemandRevalidateSuccess !== false ? withPagesCacheState(pageDataResult.response, "REVALIDATED", isrCachePathname) : pageDataResult.response;
|
|
593
|
-
if (shouldApplyErrorResponsePolicy) response = applyPagesErrorCachePolicy(response, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname);
|
|
602
|
+
if (shouldApplyErrorResponsePolicy) response = applyPagesErrorCachePolicy(response, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname, options?.__notFoundSourceHeaders);
|
|
594
603
|
return finalizePagesPreviewResponse(withBrowserPolicy(response), preview);
|
|
595
604
|
}
|
|
596
605
|
const { pageProps, renderProps } = withErrorStatusCode(pageDataResult.pageProps, previewData !== false ? {
|
|
@@ -656,7 +665,7 @@ function createPagesPageHandler(opts) {
|
|
|
656
665
|
requestCacheControl: request.headers.get("cache-control") ?? void 0
|
|
657
666
|
});
|
|
658
667
|
if (sendsEarly && pageResponseSent()) return pageResponse;
|
|
659
|
-
if (shouldApplyErrorResponsePolicy) pageResponse = applyPagesErrorCachePolicy(pageResponse, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname);
|
|
668
|
+
if (shouldApplyErrorResponsePolicy) pageResponse = applyPagesErrorCachePolicy(pageResponse, errorPageRevalidateSeconds, errorPageExpireSeconds, errorResponseCachePathname, options?.__notFoundSourceHeaders ? documentReqRes?.res.getHeaders() ?? options.__notFoundSourceHeaders : void 0);
|
|
660
669
|
return finalizePagesPreviewResponse(withBrowserPolicy(pageResponse), preview);
|
|
661
670
|
} catch (e) {
|
|
662
671
|
await reportSsrError(e);
|
|
@@ -43,4 +43,5 @@ type PagesPageMethodOptions = {
|
|
|
43
43
|
* static (no `getServerSideProps`) Pages Router page, otherwise `null`.
|
|
44
44
|
*/
|
|
45
45
|
export declare function resolvePagesPageMethodResponse(options: PagesPageMethodOptions): Response | null;
|
|
46
|
-
//#endregion
|
|
46
|
+
//#endregion
|
|
47
|
+
export {};
|