vinext 1.0.0-beta.9 → 1.0.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/README.md +150 -92
- package/THIRD_PARTY_LICENSES.md +51 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +7 -14
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +274 -102
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +73 -16
- package/dist/build/prerender.js +272 -80
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +26 -16
- package/dist/build/server-entry.d.ts +6 -0
- package/dist/build/server-entry.js +34 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/browser-globals.d.ts +4 -0
- package/dist/client/browser-globals.js +5 -0
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +20 -17
- package/dist/client/navigation-runtime.js +4 -3
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +14 -2
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +503 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +848 -255
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +711 -103
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +126 -42
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/commonjs-syntax.d.ts +16 -0
- package/dist/plugins/commonjs-syntax.js +22 -0
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +14 -4
- package/dist/plugins/ignore-dynamic-requests.js +113 -91
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +36 -48
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +5 -4
- package/dist/plugins/og-asset-ownership.js +24 -13
- package/dist/plugins/og-assets.d.ts +22 -5
- package/dist/plugins/og-assets.js +82 -21
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +271 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +34 -45
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +3 -3
- package/dist/plugins/require-context.js +41 -22
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/scan-build-css.d.ts +12 -0
- package/dist/plugins/scan-build-css.js +39 -0
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +7 -6
- package/dist/plugins/strip-server-exports.js +4 -2
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +21 -4
- package/dist/plugins/transform-result.js +23 -2
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +16 -7
- package/dist/plugins/typeof-window.js +62 -39
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +18 -19
- package/dist/routing/app-route-graph.js +5 -6
- package/dist/routing/app-route-ids.d.ts +3 -0
- package/dist/routing/app-route-ids.js +6 -0
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +4 -4
- package/dist/server/app-bfcache-id.js +7 -1
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-bfcache-identity.js +1 -2
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +91 -36
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +15 -2
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +9 -5
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +7 -3
- package/dist/server/app-browser-stream.d.ts +5 -6
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +25 -27
- package/dist/server/app-history-state.js +21 -16
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -4
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -24
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +43 -7
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +50 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +18 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-abort-error.d.ts +3 -0
- package/dist/server/app-render-abort-error.js +8 -0
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +112 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +4 -4
- package/dist/server/app-route-handler-cache.js +51 -35
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +77 -56
- package/dist/server/app-route-handler-execution.d.ts +26 -14
- package/dist/server/app-route-handler-execution.js +94 -28
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-policy.js +2 -2
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +14 -3
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +4 -1
- package/dist/server/app-router-entry.js +33 -17
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +11 -9
- package/dist/server/app-rsc-errors.js +14 -16
- package/dist/server/app-rsc-handler.d.ts +32 -6
- package/dist/server/app-rsc-handler.js +425 -64
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +5 -3
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +10 -7
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +18 -13
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +62 -15
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +34 -8
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +64 -6
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +192 -90
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +141 -64
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +56 -61
- package/dist/server/headers.js +22 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-error-responses.js +1 -0
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +30 -27
- package/dist/server/isr-cache.js +23 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +158 -35
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +28 -9
- package/dist/server/pages-asset-tags.d.ts +7 -6
- package/dist/server/pages-asset-tags.js +104 -18
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +13 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +23 -19
- package/dist/server/pages-page-data.js +82 -75
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +103 -47
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +52 -32
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +15 -12
- package/dist/server/pages-request-pipeline.js +80 -35
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +316 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +17 -11
- package/dist/server/prerender-manifest.js +7 -4
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +127 -44
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +4 -4
- package/dist/server/worker-revalidation-context.js +6 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +34 -0
- package/dist/server/workers-tracing.js +67 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +26 -38
- package/dist/shims/cache-request-state.js +2 -13
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +110 -28
- package/dist/shims/cache.d.ts +17 -16
- package/dist/shims/cache.js +19 -15
- package/dist/shims/cacheability-classification.d.ts +50 -29
- package/dist/shims/cacheability-classification.js +29 -14
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +59 -21
- package/dist/shims/cdn-cache.js +31 -47
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +5 -19
- package/dist/shims/error.js +17 -10
- package/dist/shims/error.react-server.d.ts +4 -7
- package/dist/shims/error.react-server.js +4 -1
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +46 -20
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +44 -73
- package/dist/shims/headers.js +87 -144
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cache-context-accessor.d.ts +16 -0
- package/dist/shims/internal/cache-context-accessor.js +15 -0
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/headers-state.d.ts +74 -0
- package/dist/shims/internal/headers-state.js +157 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +26 -18
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/root-params.js +1 -1
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +66 -30
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +35 -32
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +4 -4
- package/dist/utils/encode-cache-tag.js +11 -1
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +151 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +51 -6
- package/dist/server/metadata-route-cache-policy.d.ts +0 -6
- package/dist/server/metadata-route-cache-policy.js +0 -6
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
//#region src/shims/cdn-cache-state.ts
|
|
2
|
+
const CDN_CACHE_ADAPTER_KEY = Symbol.for("vinext.cdnCacheAdapter");
|
|
3
|
+
const globals = globalThis;
|
|
4
|
+
/** Register an adapter without loading the origin cache implementation. */
|
|
5
|
+
function setCdnCacheAdapter(adapter) {
|
|
6
|
+
globals[CDN_CACHE_ADAPTER_KEY] = adapter;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Lazily keep the first declaratively configured adapter shared across
|
|
10
|
+
* duplicated stage modules. Failed factories remain retryable so a later
|
|
11
|
+
* entrypoint with the required runtime bindings can register successfully.
|
|
12
|
+
*/
|
|
13
|
+
function registerCdnCacheAdapter(factory) {
|
|
14
|
+
if (globals[CDN_CACHE_ADAPTER_KEY] !== void 0) return;
|
|
15
|
+
const adapter = factory();
|
|
16
|
+
if (globals[CDN_CACHE_ADAPTER_KEY] === void 0) globals[CDN_CACHE_ADAPTER_KEY] = adapter;
|
|
17
|
+
}
|
|
18
|
+
/** Read only an explicitly registered adapter; defaults belong to cdn-cache. */
|
|
19
|
+
function getExplicitCdnCacheAdapter() {
|
|
20
|
+
return globals[CDN_CACHE_ADAPTER_KEY] ?? null;
|
|
21
|
+
}
|
|
22
|
+
//#endregion
|
|
23
|
+
export { getExplicitCdnCacheAdapter, registerCdnCacheAdapter, setCdnCacheAdapter };
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
+
import { VinextAssetFetcher } from "../server/multi-stage.js";
|
|
1
2
|
import { CacheHandlerValue, IncrementalCacheValue } from "./cache-handler.js";
|
|
3
|
+
import { setCdnCacheAdapter } from "./cdn-cache-state.js";
|
|
2
4
|
//#region src/shims/cdn-cache.d.ts
|
|
3
5
|
/** A map of response header name -> value the adapter wants applied or removed. */
|
|
4
|
-
type CdnResponseHeaders = Record<string, string | null>;
|
|
5
|
-
type CdnCacheableHeaderInput = {
|
|
6
|
+
export type CdnResponseHeaders = Record<string, string | null>;
|
|
7
|
+
export type CdnCacheableHeaderInput = {
|
|
6
8
|
/**
|
|
7
9
|
* The cacheable `Cache-Control` value the framework computed for shared
|
|
8
10
|
* caches (e.g. `s-maxage=60, stale-while-revalidate`). May be an empty string
|
|
9
11
|
* when no cacheable policy applies.
|
|
10
12
|
*/
|
|
11
13
|
cacheControl: string;
|
|
14
|
+
/** Explicit endpoint policy returned to clients, independent of shared admission. */
|
|
15
|
+
browserCacheControl?: string;
|
|
12
16
|
/**
|
|
13
17
|
* True when this is a freshly-rendered **streaming** response whose
|
|
14
18
|
* dynamic-ness is not yet proven (late Server Component request-API usage can
|
|
@@ -28,18 +32,40 @@ type CdnCacheableHeaderInput = {
|
|
|
28
32
|
*/
|
|
29
33
|
tags?: readonly string[];
|
|
30
34
|
};
|
|
35
|
+
export type CdnResponsePolicy = {
|
|
36
|
+
/** Whether a provider-specific response header controls shared caching. */
|
|
37
|
+
isHeader(name: string): boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Read the effective shared-cache policy from a response. The returned value
|
|
40
|
+
* uses Cache-Control syntax so core can apply the framework's cacheability
|
|
41
|
+
* rules without knowing which provider header carried it.
|
|
42
|
+
*/
|
|
43
|
+
readCacheControl(headers: Headers): string | null;
|
|
44
|
+
/**
|
|
45
|
+
* Name the response header `readCacheControl` interpreted, or `null` when
|
|
46
|
+
* none did. Core uses it to tell which stage owns the effective policy;
|
|
47
|
+
* without it, core cannot attribute that policy to next.config.
|
|
48
|
+
*/
|
|
49
|
+
readCacheControlHeaderName?(headers: Headers): string | null;
|
|
50
|
+
/** Whether provider policy explicitly opts out of storage. */
|
|
51
|
+
hasExplicitNonCacheablePolicy(headers: Headers, baseline?: Headers): boolean;
|
|
52
|
+
};
|
|
53
|
+
/** Split Cache-Control directives without treating quoted commas as separators. */
|
|
54
|
+
export declare function splitCacheControlDirectives(cacheControl: string): string[];
|
|
31
55
|
/** Whether a Cache-Control value contains an exact non-cacheable directive. */
|
|
32
|
-
declare function isNonCacheableCacheControl(cacheControl: string): boolean;
|
|
56
|
+
export declare function isNonCacheableCacheControl(cacheControl: string, scope?: "shared" | "browser"): boolean;
|
|
33
57
|
/**
|
|
34
58
|
* The serving strategy for page-level ISR. Implement this to delegate
|
|
35
59
|
* page/route/image caching to a CDN edge instead of the origin store.
|
|
36
60
|
*/
|
|
37
|
-
type CdnCacheAdapter = {
|
|
61
|
+
export type CdnCacheAdapter = {
|
|
38
62
|
/**
|
|
39
63
|
* The shared cache selects response variants using every request header
|
|
40
64
|
* named by `Vary`, comparing values verbatim.
|
|
41
65
|
*/
|
|
42
66
|
readonly responseVary?: "verbatim";
|
|
67
|
+
/** Provider-specific response-policy interpretation, when the adapter has one. */
|
|
68
|
+
readonly responsePolicy?: CdnResponsePolicy;
|
|
43
69
|
/**
|
|
44
70
|
* Fresh App Page responses must reach clean EOF before this adapter may emit
|
|
45
71
|
* shared-cache headers. Used by edge adapters whose cache sits in front of
|
|
@@ -47,6 +73,21 @@ type CdnCacheAdapter = {
|
|
|
47
73
|
* the completed artifact.
|
|
48
74
|
*/
|
|
49
75
|
readonly requiresCompletedResponseAdmission?: boolean;
|
|
76
|
+
/**
|
|
77
|
+
* This adapter's response-stage transport keys shared App page dispatches by
|
|
78
|
+
* `VinextResponseStageDispatchOptions.cacheIdentity` when core supplies one.
|
|
79
|
+
* Core supplies it only when completed-response admission is also required,
|
|
80
|
+
* because that admission is what makes a query-free identity safe.
|
|
81
|
+
*/
|
|
82
|
+
readonly responseStageCacheIdentity?: "query-free";
|
|
83
|
+
/**
|
|
84
|
+
* Optionally return a foreground page response while completed-response
|
|
85
|
+
* admission continues on an independent body branch. Returning `null` keeps
|
|
86
|
+
* the normal blocking admission path. API responses are never passed here.
|
|
87
|
+
*/
|
|
88
|
+
deferCompletedPageResponseAdmission?(response: Response, complete: (response: Response) => Promise<Response>): Response | null;
|
|
89
|
+
/** Capture the full-route RSC side stream while admitting a completed HTML response. */
|
|
90
|
+
captureAppPageRscData?(rscData: Promise<ArrayBuffer>): void;
|
|
50
91
|
/**
|
|
51
92
|
* Validate provider-specific request routing before the application handles
|
|
52
93
|
* the request. Returning a response short-circuits the request pipeline;
|
|
@@ -64,6 +105,10 @@ type CdnCacheAdapter = {
|
|
|
64
105
|
* edge owns serving.
|
|
65
106
|
*/
|
|
66
107
|
get(key: string, ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
|
|
108
|
+
/** Also supplies build-time PAGES entries for pages without getStaticProps. */
|
|
109
|
+
readonly hasPrerenderedPages?: boolean;
|
|
110
|
+
/** Optional host asset fetcher resolved by the adapter's platform bindings. */
|
|
111
|
+
readonly assets?: VinextAssetFetcher;
|
|
67
112
|
/**
|
|
68
113
|
* Persist a freshly-rendered page-level artifact.
|
|
69
114
|
*
|
|
@@ -85,14 +130,6 @@ type CdnCacheAdapter = {
|
|
|
85
130
|
* paths that do not pass through cache-policy finalization.
|
|
86
131
|
*/
|
|
87
132
|
buildResponseIdentityHeaders?(): CdnResponseHeaders;
|
|
88
|
-
/**
|
|
89
|
-
* Whether existing response headers explicitly opt out of storage. Adapters
|
|
90
|
-
* that split browser and provider cache policy should implement this so they
|
|
91
|
-
* can interpret the provider-specific headers they own.
|
|
92
|
-
*
|
|
93
|
-
* When omitted, core inspects only the generic `Cache-Control` header.
|
|
94
|
-
*/
|
|
95
|
-
hasExplicitNonCacheableResponsePolicy?(headers: Headers): boolean;
|
|
96
133
|
/**
|
|
97
134
|
* Whether the **origin** runs in-process background regeneration when a stale
|
|
98
135
|
* entry is served. Edge adapters set this to `false` because the CDN
|
|
@@ -118,11 +155,14 @@ type CdnCacheAdapter = {
|
|
|
118
155
|
* response headers alone. Deployments where provider headers carry cache
|
|
119
156
|
* semantics must configure the adapter that owns those headers.
|
|
120
157
|
*/
|
|
121
|
-
declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
158
|
+
export declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
159
|
+
private readonly buildIdentity?;
|
|
122
160
|
readonly ownsBackgroundRevalidation = true;
|
|
161
|
+
constructor(buildIdentity?: string | undefined);
|
|
123
162
|
get(key: string, ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
|
|
124
163
|
set(key: string, data: IncrementalCacheValue | null, ctx?: Record<string, unknown>): Promise<void>;
|
|
125
164
|
buildResponseHeaders(input: CdnCacheableHeaderInput): CdnResponseHeaders;
|
|
165
|
+
buildResponseIdentityHeaders(): CdnResponseHeaders;
|
|
126
166
|
revalidateTag(_tags: string | string[], _durations?: {
|
|
127
167
|
expire?: number;
|
|
128
168
|
}): Promise<void>;
|
|
@@ -138,23 +178,21 @@ declare class DefaultCdnCacheAdapter implements CdnCacheAdapter {
|
|
|
138
178
|
*
|
|
139
179
|
* ```ts
|
|
140
180
|
* import { vinext } from "vinext";
|
|
141
|
-
* import {
|
|
181
|
+
* import { workersCacheCdnAdapter } from "@vinext/cloudflare/cache/workers-cache-cdn-adapter";
|
|
142
182
|
*
|
|
143
183
|
* export default defineConfig({
|
|
144
|
-
* plugins: [vinext({ cache: { cdn:
|
|
184
|
+
* plugins: [vinext({ cache: { cdn: workersCacheCdnAdapter() } })],
|
|
145
185
|
* });
|
|
146
186
|
* ```
|
|
147
187
|
*
|
|
148
188
|
* The plugin registers the adapter across every runtime/router entry, so you
|
|
149
|
-
* don't have to call this from a worker entry. This setter remains
|
|
150
|
-
*
|
|
151
|
-
* recommended consumer API.
|
|
189
|
+
* don't have to call this from a worker entry. This setter remains for
|
|
190
|
+
* backwards compatibility, but is not the recommended consumer API.
|
|
152
191
|
*/
|
|
153
|
-
declare function setCdnCacheAdapter(adapter: CdnCacheAdapter): void;
|
|
154
192
|
/**
|
|
155
193
|
* Get the active CDN cache adapter. An explicitly configured adapter wins;
|
|
156
194
|
* otherwise the origin-managed {@link DefaultCdnCacheAdapter} is used.
|
|
157
195
|
*/
|
|
158
|
-
declare function getCdnCacheAdapter(): CdnCacheAdapter;
|
|
196
|
+
export declare function getCdnCacheAdapter(): CdnCacheAdapter;
|
|
159
197
|
//#endregion
|
|
160
|
-
export {
|
|
198
|
+
export { setCdnCacheAdapter };
|
package/dist/shims/cdn-cache.js
CHANGED
|
@@ -1,43 +1,16 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getExplicitCdnCacheAdapter, setCdnCacheAdapter } from "./cdn-cache-state.js";
|
|
2
2
|
//#region src/shims/cdn-cache.ts
|
|
3
|
-
/**
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
* This is deliberately distinct from the data cache handler (see `./cache.ts`):
|
|
7
|
-
*
|
|
8
|
-
* - The **data cache** stores cached data (fetch, `"use cache"`,
|
|
9
|
-
* `unstable_cache`, route-handler data). It is a pure key/value store.
|
|
10
|
-
*
|
|
11
|
-
* - The **CDN cache adapter** decides *how page-level ISR is served*: where the
|
|
12
|
-
* rendered page/route/image artifacts live, what cache headers the response
|
|
13
|
-
* carries, whether the origin runs background regeneration, and how
|
|
14
|
-
* invalidation propagates to a CDN edge.
|
|
15
|
-
*
|
|
16
|
-
* Two strategies sit behind one interface:
|
|
17
|
-
*
|
|
18
|
-
* | Concern | DefaultCdnCacheAdapter (origin-managed) | Edge adapter (CDN-managed) |
|
|
19
|
-
* | ------------------ | --------------------------------------- | ------------------------------------------- |
|
|
20
|
-
* | Serve from store? | Yes — reads the data cache | No — origin renders fresh, edge caches |
|
|
21
|
-
* | Background regen | In-process via `waitUntil` | Edge re-requests origin |
|
|
22
|
-
* | Response headers | Framework cache policy | Provider-specific cache policy |
|
|
23
|
-
* | Invalidation | (data cache handles tag invalidation) | purge / revalidate via request context |
|
|
24
|
-
*
|
|
25
|
-
* The default adapter is a thin shim over the data cache + the framework's
|
|
26
|
-
* existing header logic, so default behavior is byte-for-byte identical to the
|
|
27
|
-
* pre-split implementation.
|
|
28
|
-
*/
|
|
29
|
-
/** Whether a Cache-Control value contains an exact non-cacheable directive. */
|
|
30
|
-
function isNonCacheableCacheControl(cacheControl) {
|
|
3
|
+
/** Split Cache-Control directives without treating quoted commas as separators. */
|
|
4
|
+
function splitCacheControlDirectives(cacheControl) {
|
|
5
|
+
const directives = [];
|
|
31
6
|
let start = 0;
|
|
32
7
|
let quoted = false;
|
|
33
8
|
let escaped = false;
|
|
34
9
|
for (let index = 0; index <= cacheControl.length; index++) {
|
|
35
10
|
const char = cacheControl[index];
|
|
36
11
|
if (index === cacheControl.length || char === "," && !quoted) {
|
|
37
|
-
const directive = cacheControl.slice(start, index);
|
|
38
|
-
|
|
39
|
-
const name = (equals === -1 ? directive : directive.slice(0, equals)).trim().toLowerCase();
|
|
40
|
-
if (name === "no-store" || equals === -1 && (name === "private" || name === "no-cache")) return true;
|
|
12
|
+
const directive = cacheControl.slice(start, index).trim();
|
|
13
|
+
if (directive) directives.push(directive);
|
|
41
14
|
start = index + 1;
|
|
42
15
|
continue;
|
|
43
16
|
}
|
|
@@ -48,7 +21,15 @@ function isNonCacheableCacheControl(cacheControl) {
|
|
|
48
21
|
if (char === "\"" && !escaped) quoted = !quoted;
|
|
49
22
|
escaped = false;
|
|
50
23
|
}
|
|
51
|
-
return
|
|
24
|
+
return directives;
|
|
25
|
+
}
|
|
26
|
+
/** Whether a Cache-Control value contains an exact non-cacheable directive. */
|
|
27
|
+
function isNonCacheableCacheControl(cacheControl, scope = "shared") {
|
|
28
|
+
return splitCacheControlDirectives(cacheControl).some((directive) => {
|
|
29
|
+
const equals = directive.indexOf("=");
|
|
30
|
+
const name = (equals === -1 ? directive : directive.slice(0, equals)).trim().toLowerCase();
|
|
31
|
+
return name === "no-store" || equals === -1 && (name === "no-cache" || scope === "shared" && name === "private");
|
|
32
|
+
});
|
|
52
33
|
}
|
|
53
34
|
const PENDING_DYNAMIC_CACHE_CONTROL = "no-store, must-revalidate";
|
|
54
35
|
/**
|
|
@@ -59,21 +40,28 @@ const PENDING_DYNAMIC_CACHE_CONTROL = "no-store, must-revalidate";
|
|
|
59
40
|
* semantics must configure the adapter that owns those headers.
|
|
60
41
|
*/
|
|
61
42
|
var DefaultCdnCacheAdapter = class {
|
|
43
|
+
buildIdentity;
|
|
62
44
|
ownsBackgroundRevalidation = true;
|
|
45
|
+
constructor(buildIdentity) {
|
|
46
|
+
this.buildIdentity = buildIdentity;
|
|
47
|
+
}
|
|
63
48
|
async get(key, ctx) {
|
|
49
|
+
const { getDataCacheHandler } = await import("./cache-handler.js");
|
|
64
50
|
return getDataCacheHandler().get(key, ctx);
|
|
65
51
|
}
|
|
66
52
|
async set(key, data, ctx) {
|
|
53
|
+
const { getDataCacheHandler } = await import("./cache-handler.js");
|
|
67
54
|
await getDataCacheHandler().set(key, data, ctx);
|
|
68
55
|
}
|
|
69
56
|
buildResponseHeaders(input) {
|
|
70
57
|
if (input.pendingDynamicCheck) return { "Cache-Control": PENDING_DYNAMIC_CACHE_CONTROL };
|
|
71
|
-
return { "Cache-Control": input.cacheControl };
|
|
58
|
+
return { "Cache-Control": input.browserCacheControl ?? input.cacheControl };
|
|
59
|
+
}
|
|
60
|
+
buildResponseIdentityHeaders() {
|
|
61
|
+
return this.buildIdentity ? { "X-Vinext-Build-Id": this.buildIdentity } : {};
|
|
72
62
|
}
|
|
73
63
|
async revalidateTag(_tags, _durations) {}
|
|
74
64
|
};
|
|
75
|
-
const _CDN_KEY = Symbol.for("vinext.cdnCacheAdapter");
|
|
76
|
-
const _gCdn = globalThis;
|
|
77
65
|
let _defaultAdapter = null;
|
|
78
66
|
/**
|
|
79
67
|
* Set a custom CDN cache adapter to delegate page-level ISR to a CDN edge. An
|
|
@@ -86,29 +74,25 @@ let _defaultAdapter = null;
|
|
|
86
74
|
*
|
|
87
75
|
* ```ts
|
|
88
76
|
* import { vinext } from "vinext";
|
|
89
|
-
* import {
|
|
77
|
+
* import { workersCacheCdnAdapter } from "@vinext/cloudflare/cache/workers-cache-cdn-adapter";
|
|
90
78
|
*
|
|
91
79
|
* export default defineConfig({
|
|
92
|
-
* plugins: [vinext({ cache: { cdn:
|
|
80
|
+
* plugins: [vinext({ cache: { cdn: workersCacheCdnAdapter() } })],
|
|
93
81
|
* });
|
|
94
82
|
* ```
|
|
95
83
|
*
|
|
96
84
|
* The plugin registers the adapter across every runtime/router entry, so you
|
|
97
|
-
* don't have to call this from a worker entry. This setter remains
|
|
98
|
-
*
|
|
99
|
-
* recommended consumer API.
|
|
85
|
+
* don't have to call this from a worker entry. This setter remains for
|
|
86
|
+
* backwards compatibility, but is not the recommended consumer API.
|
|
100
87
|
*/
|
|
101
|
-
function setCdnCacheAdapter(adapter) {
|
|
102
|
-
_gCdn[_CDN_KEY] = adapter;
|
|
103
|
-
}
|
|
104
88
|
/**
|
|
105
89
|
* Get the active CDN cache adapter. An explicitly configured adapter wins;
|
|
106
90
|
* otherwise the origin-managed {@link DefaultCdnCacheAdapter} is used.
|
|
107
91
|
*/
|
|
108
92
|
function getCdnCacheAdapter() {
|
|
109
|
-
const active =
|
|
93
|
+
const active = getExplicitCdnCacheAdapter();
|
|
110
94
|
if (active) return active;
|
|
111
95
|
return _defaultAdapter ??= new DefaultCdnCacheAdapter();
|
|
112
96
|
}
|
|
113
97
|
//#endregion
|
|
114
|
-
export { DefaultCdnCacheAdapter, getCdnCacheAdapter, isNonCacheableCacheControl, setCdnCacheAdapter };
|
|
98
|
+
export { DefaultCdnCacheAdapter, getCdnCacheAdapter, isNonCacheableCacheControl, setCdnCacheAdapter, splitCacheControlDirectives };
|
|
@@ -7,7 +7,6 @@
|
|
|
7
7
|
*
|
|
8
8
|
* @see https://github.com/cloudflare/vinext/issues/834
|
|
9
9
|
*/
|
|
10
|
-
declare function buildClientHookErrorMessage(hookName: string): string;
|
|
11
|
-
declare function throwClientHookError(hookName: string): never;
|
|
12
|
-
//#endregion
|
|
13
|
-
export { buildClientHookErrorMessage, throwClientHookError };
|
|
10
|
+
export declare function buildClientHookErrorMessage(hookName: string): string;
|
|
11
|
+
export declare function throwClientHookError(hookName: string): never;
|
|
12
|
+
//#endregion
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { DomainLocale } from "../utils/domain-locale.js";
|
|
2
2
|
//#region src/shims/client-locale.d.ts
|
|
3
|
-
declare function getCurrentBrowserLocale({ basePath, domainLocales, hostname }: {
|
|
3
|
+
export declare function getCurrentBrowserLocale({ basePath, domainLocales, hostname }: {
|
|
4
4
|
basePath: string;
|
|
5
5
|
domainLocales: readonly DomainLocale[] | undefined;
|
|
6
6
|
hostname: string | null | undefined;
|
|
7
7
|
}): string | undefined;
|
|
8
|
-
//#endregion
|
|
9
|
-
export { getCurrentBrowserLocale };
|
|
8
|
+
//#endregion
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ComponentType } from "react";
|
|
2
|
+
//#region src/shims/client-page-root.d.ts
|
|
3
|
+
type ClientPageSearchParams = Record<string, string | string[]>;
|
|
4
|
+
export type ClientPageRootProps = {
|
|
5
|
+
Component: ComponentType<Record<string, unknown>>;
|
|
6
|
+
/** The page's other props (`params`, slot props). Never `searchParams`. */
|
|
7
|
+
pageProps: Readonly<Record<string, unknown>>;
|
|
8
|
+
/** The page always reads an empty query: `force-static`, or static export. */
|
|
9
|
+
emptySearchParams?: boolean;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Build an untracked `searchParams` promise, like Next.js 15's browser
|
|
13
|
+
* `makeUntrackedExoticSearchParams`: a settled promise whose query keys are
|
|
14
|
+
* also readable synchronously, except names Promise and React rely on.
|
|
15
|
+
*
|
|
16
|
+
* It matches the SSR thenable (`makeThenableParams`) wherever a page could
|
|
17
|
+
* tell them apart during hydration, so it is a proxy in the same way: the
|
|
18
|
+
* query keys are virtual, and the promise's methods run on the promise
|
|
19
|
+
* itself. As real own properties, a `constructor` key would replace the
|
|
20
|
+
* promise's species, and `await` would throw.
|
|
21
|
+
*/
|
|
22
|
+
export declare function createClientPageSearchParams(searchParams: URLSearchParams | null | undefined): Promise<ClientPageSearchParams>;
|
|
23
|
+
export declare function ClientPageRoot({ Component, pageProps, emptySearchParams }: ClientPageRootProps): import("react").ReactElement<Record<string, unknown>, string | import("react").JSXElementConstructor<any>>;
|
|
24
|
+
//#endregion
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { searchParamsToRecord } from "../utils/query.js";
|
|
3
|
+
import { getNavigationContext } from "./navigation-context-state.js";
|
|
4
|
+
import "./navigation-server.js";
|
|
5
|
+
import { isOwnPropertyCheck, isWellKnownProperty } from "./internal/thenable-well-known-properties.js";
|
|
6
|
+
import { RenderedSearchContext } from "./slot.js";
|
|
7
|
+
import { getClientNavigationRenderContext, useSearchParams } from "./navigation.js";
|
|
8
|
+
import { createElement, use, useMemo } from "react";
|
|
9
|
+
//#region src/shims/client-page-root.tsx
|
|
10
|
+
/**
|
|
11
|
+
* Wrapper for a "use client" App Router page, like Next.js's `ClientPageRoot`
|
|
12
|
+
* (client/components/client-page.tsx).
|
|
13
|
+
*
|
|
14
|
+
* The server never sends a client page's `searchParams` through Flight. Flight
|
|
15
|
+
* calls `then` on every promise prop while serializing it, so the page would
|
|
16
|
+
* always count as reading the query, and the RSC payload would carry it. This
|
|
17
|
+
* wrapper builds the prop where the page renders instead:
|
|
18
|
+
*
|
|
19
|
+
* - SSR: a promise per page from the navigation context (`app-ssr-entry.ts`),
|
|
20
|
+
* keyed by the page's props object like the browser's, so React's
|
|
21
|
+
* bookkeeping from one page's `use()` never shows on a sibling's. Reading
|
|
22
|
+
* it marks the render dynamic, so a render that uses the query is never
|
|
23
|
+
* stored, and a page that never reads it stays cacheable.
|
|
24
|
+
* - Browser: the query the server rendered this page with, captured when the
|
|
25
|
+
* page's server output first renders. Next.js reads it from the page's own
|
|
26
|
+
* segment payload, so a rewritten query survives, and a page that stays
|
|
27
|
+
* mounted (an intercepted modal's background, a kept parallel slot) keeps
|
|
28
|
+
* its query when the URL changes. The router tags each payload's elements
|
|
29
|
+
* with the query they were rendered with (`RenderedSearchContext`), so a
|
|
30
|
+
* kept page that first renders under a later navigation (still streaming,
|
|
31
|
+
* or refreshed from its own URL) reads its own response's query.
|
|
32
|
+
* - Browser, with Cache Components: the query `useSearchParams()` returns, as
|
|
33
|
+
* Next.js reads it from `SearchParamsContext` in that mode. That is the
|
|
34
|
+
* public URL's query rather than a rewritten one, and a kept page follows
|
|
35
|
+
* the URL.
|
|
36
|
+
*
|
|
37
|
+
* `emptySearchParams` pages (`dynamic = "force-static"`, static export) always
|
|
38
|
+
* get an empty, untracked query, as the server renders them.
|
|
39
|
+
*
|
|
40
|
+
* This module runs in the browser, so it must not import server-only modules.
|
|
41
|
+
*/
|
|
42
|
+
const isServer = typeof window === "undefined";
|
|
43
|
+
function isCacheComponentsEnabled() {
|
|
44
|
+
return String(process.env.__NEXT_CACHE_COMPONENTS) === "true";
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Build an untracked `searchParams` promise, like Next.js 15's browser
|
|
48
|
+
* `makeUntrackedExoticSearchParams`: a settled promise whose query keys are
|
|
49
|
+
* also readable synchronously, except names Promise and React rely on.
|
|
50
|
+
*
|
|
51
|
+
* It matches the SSR thenable (`makeThenableParams`) wherever a page could
|
|
52
|
+
* tell them apart during hydration, so it is a proxy in the same way: the
|
|
53
|
+
* query keys are virtual, and the promise's methods run on the promise
|
|
54
|
+
* itself. As real own properties, a `constructor` key would replace the
|
|
55
|
+
* promise's species, and `await` would throw.
|
|
56
|
+
*/
|
|
57
|
+
function createClientPageSearchParams(searchParams) {
|
|
58
|
+
const record = { ...searchParamsToRecord(searchParams) };
|
|
59
|
+
const promise = Promise.resolve(record);
|
|
60
|
+
const isQueryKey = (prop) => typeof prop === "string" && !isWellKnownProperty(prop) && Object.hasOwn(record, prop);
|
|
61
|
+
return new Proxy(promise, {
|
|
62
|
+
get(target, prop, receiver) {
|
|
63
|
+
if (isQueryKey(prop)) return record[prop];
|
|
64
|
+
const value = Reflect.get(target, prop);
|
|
65
|
+
if (typeof value !== "function") return value;
|
|
66
|
+
return value.bind(isOwnPropertyCheck(prop) ? receiver : target);
|
|
67
|
+
},
|
|
68
|
+
getOwnPropertyDescriptor(target, prop) {
|
|
69
|
+
return isQueryKey(prop) ? {
|
|
70
|
+
configurable: true,
|
|
71
|
+
enumerable: true,
|
|
72
|
+
value: record[prop],
|
|
73
|
+
writable: true
|
|
74
|
+
} : Reflect.getOwnPropertyDescriptor(target, prop);
|
|
75
|
+
},
|
|
76
|
+
has(target, prop) {
|
|
77
|
+
return isQueryKey(prop) || Reflect.has(target, prop);
|
|
78
|
+
},
|
|
79
|
+
ownKeys() {
|
|
80
|
+
return Object.keys(record).filter((key) => !isWellKnownProperty(key));
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
const browserSearchParams = /* @__PURE__ */ new WeakMap();
|
|
85
|
+
function useBrowserSearchParams(pageProps, emptySearchParams) {
|
|
86
|
+
const cached = browserSearchParams.get(pageProps);
|
|
87
|
+
if (cached) return cached;
|
|
88
|
+
let search = null;
|
|
89
|
+
if (!emptySearchParams) {
|
|
90
|
+
const context = getClientNavigationRenderContext();
|
|
91
|
+
const snapshot = context ? use(context) : null;
|
|
92
|
+
search = use(RenderedSearchContext) ?? (snapshot ? snapshot.renderedSearch ?? snapshot.search : window.location.search);
|
|
93
|
+
}
|
|
94
|
+
const searchParams = createClientPageSearchParams(search === null ? null : new URLSearchParams(search));
|
|
95
|
+
browserSearchParams.set(pageProps, searchParams);
|
|
96
|
+
return searchParams;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Cache Components hands a client page the query `useSearchParams()` returns,
|
|
100
|
+
* not the one its payload rendered, so a rewritten query stays internal.
|
|
101
|
+
*/
|
|
102
|
+
function useCanonicalSearchParams(emptySearchParams) {
|
|
103
|
+
const urlSearchParams = useSearchParams();
|
|
104
|
+
return useMemo(() => createClientPageSearchParams(emptySearchParams ? null : urlSearchParams), [emptySearchParams, urlSearchParams]);
|
|
105
|
+
}
|
|
106
|
+
function ClientPageRoot({ Component, pageProps, emptySearchParams }) {
|
|
107
|
+
let searchParams;
|
|
108
|
+
if (!isServer) searchParams = isCacheComponentsEnabled() ? useCanonicalSearchParams(emptySearchParams === true) : useBrowserSearchParams(pageProps, emptySearchParams === true);
|
|
109
|
+
else if (emptySearchParams === true) searchParams = createClientPageSearchParams(null);
|
|
110
|
+
else searchParams = getNavigationContext()?.getClientPageSearchParams?.(pageProps) ?? createClientPageSearchParams(null);
|
|
111
|
+
return useMemo(() => createElement(Component, {
|
|
112
|
+
...pageProps,
|
|
113
|
+
searchParams
|
|
114
|
+
}), [
|
|
115
|
+
Component,
|
|
116
|
+
pageProps,
|
|
117
|
+
searchParams
|
|
118
|
+
]);
|
|
119
|
+
}
|
|
120
|
+
//#endregion
|
|
121
|
+
export { ClientPageRoot, createClientPageSearchParams };
|
|
@@ -10,6 +10,5 @@ import { NextRouter } from "./router.js";
|
|
|
10
10
|
*
|
|
11
11
|
* @returns The `NextRouter` instance if it's available, otherwise `null`.
|
|
12
12
|
*/
|
|
13
|
-
declare function useRouter(): NextRouter | null;
|
|
14
|
-
//#endregion
|
|
15
|
-
export { useRouter };
|
|
13
|
+
export declare function useRouter(): NextRouter | null;
|
|
14
|
+
//#endregion
|
package/dist/shims/config.d.ts
CHANGED
|
@@ -18,11 +18,10 @@ type RuntimeConfig = {
|
|
|
18
18
|
* Set the runtime config. Called during app bootstrap (by the plugin)
|
|
19
19
|
* with values from next.config.js.
|
|
20
20
|
*/
|
|
21
|
-
declare function setConfig(configValue: RuntimeConfig): void;
|
|
21
|
+
export declare function setConfig(configValue: RuntimeConfig): void;
|
|
22
22
|
/**
|
|
23
23
|
* Get the current runtime config.
|
|
24
24
|
* Default export — matches `import getConfig from "next/config"`.
|
|
25
25
|
*/
|
|
26
|
-
|
|
27
|
-
//#endregion
|
|
28
|
-
export { getConfig as default, setConfig };
|
|
26
|
+
export default function getConfig(): RuntimeConfig;
|
|
27
|
+
//#endregion
|