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
package/dist/server/isr-cache.js
CHANGED
|
@@ -1,76 +1,15 @@
|
|
|
1
|
-
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
2
1
|
import { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER } from "../utils/protocol-headers.js";
|
|
2
|
+
import { normalizePathnameForRouteMatch } from "../routing/utils.js";
|
|
3
|
+
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
3
4
|
import { reportRequestError } from "./instrumentation.js";
|
|
4
5
|
import { getCdnCacheAdapter } from "../shims/cdn-cache.js";
|
|
5
6
|
import { fnv1a64 } from "../utils/hash.js";
|
|
6
7
|
import { normalizeMountedSlotsHeader } from "./app-mounted-slots-header.js";
|
|
7
8
|
import { APP_RSC_RENDER_MODE_NAVIGATION, getRscRenderModeCacheVariant } from "./app-rsc-render-mode.js";
|
|
8
9
|
import { normalizeAppPageInterceptionProofPathname } from "./app-page-render-identity.js";
|
|
10
|
+
import { getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret } from "./revalidation-request.js";
|
|
9
11
|
//#region src/server/isr-cache.ts
|
|
10
12
|
/**
|
|
11
|
-
* Build-time secret that authenticates on-demand revalidation requests, the
|
|
12
|
-
* vinext analog of Next.js's prerender-manifest `previewModeId`.
|
|
13
|
-
*
|
|
14
|
-
* `res.revalidate()` loops back into the server via an internal `fetch()`. On
|
|
15
|
-
* Cloudflare Workers that loopback can land on a *different* isolate than the
|
|
16
|
-
* sender, so a per-process random secret would mismatch across isolates and
|
|
17
|
-
* false-reject legitimate revalidations (and, symmetrically, two isolates with
|
|
18
|
-
* independently-rolled secrets could never agree). The fix mirrors Next.js's
|
|
19
|
-
* `previewModeId`: the secret is generated once at BUILD time and baked
|
|
20
|
-
* (server-only — never into the client bundle) into every server bundle via the
|
|
21
|
-
* `__VINEXT_REVALIDATE_SECRET` Vite `define`, so it is byte-for-byte identical in
|
|
22
|
-
* every isolate. See `vinext build` CLI (`__VINEXT_SHARED_REVALIDATE_SECRET`) and
|
|
23
|
-
* the `vinext:compiler-define-server` plugin. The sender attaches it as the
|
|
24
|
-
* {@link PRERENDER_REVALIDATE_HEADER} value; the receiver authorizes a request
|
|
25
|
-
* only when the incoming value equals this secret (see
|
|
26
|
-
* {@link isOnDemandRevalidateRequest}).
|
|
27
|
-
*
|
|
28
|
-
* When the build-time define is absent — dev mode, and any path that doesn't
|
|
29
|
-
* run through `vinext build` — we fall back to a lazily-generated random secret.
|
|
30
|
-
* Those paths are single-process, but Vite can evaluate this module separately
|
|
31
|
-
* in its RSC and SSR module graphs. Store the fallback on `globalThis` under a
|
|
32
|
-
* registry symbol so every module copy in the process reads the same value.
|
|
33
|
-
*/
|
|
34
|
-
const _DEV_REVALIDATE_SECRET_KEY = Symbol.for("vinext.isrCache.devRevalidateSecret");
|
|
35
|
-
function getRevalidateSecret() {
|
|
36
|
-
const baked = process.env.__VINEXT_REVALIDATE_SECRET;
|
|
37
|
-
if (baked) return baked;
|
|
38
|
-
const globals = globalThis;
|
|
39
|
-
const existing = globals[_DEV_REVALIDATE_SECRET_KEY];
|
|
40
|
-
if (typeof existing === "string") return existing;
|
|
41
|
-
const bytes = /* @__PURE__ */ new Uint8Array(32);
|
|
42
|
-
crypto.getRandomValues(bytes);
|
|
43
|
-
const secret = Array.from(bytes, (b) => b.toString(16).padStart(2, "0")).join("");
|
|
44
|
-
globals[_DEV_REVALIDATE_SECRET_KEY] = secret;
|
|
45
|
-
return secret;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Constant-time string equality. Avoids leaking secret length / prefix via
|
|
49
|
-
* early-exit timing on the on-demand revalidation auth check. Returns false
|
|
50
|
-
* for length mismatch (the only safe option without revealing the secret
|
|
51
|
-
* length, and equality is impossible anyway).
|
|
52
|
-
*/
|
|
53
|
-
function safeEqual(a, b) {
|
|
54
|
-
if (a.length !== b.length) return false;
|
|
55
|
-
let mismatch = 0;
|
|
56
|
-
for (let i = 0; i < a.length; i++) mismatch |= a.charCodeAt(i) ^ b.charCodeAt(i);
|
|
57
|
-
return mismatch === 0;
|
|
58
|
-
}
|
|
59
|
-
function isRevalidateSecret(value) {
|
|
60
|
-
if (typeof value !== "string" || value.length === 0) return false;
|
|
61
|
-
return safeEqual(value, getRevalidateSecret());
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Authorize an incoming request as an on-demand revalidation trigger. Mirrors
|
|
65
|
-
* Next.js's `checkIsOnDemandRevalidate`: the {@link PRERENDER_REVALIDATE_HEADER}
|
|
66
|
-
* value must *equal* the process revalidate secret. Header presence alone is
|
|
67
|
-
* NOT sufficient — see the security note on {@link PRERENDER_REVALIDATE_HEADER}.
|
|
68
|
-
*/
|
|
69
|
-
function isOnDemandRevalidateRequest(headerValue) {
|
|
70
|
-
if (typeof headerValue !== "string") return false;
|
|
71
|
-
return isRevalidateSecret(headerValue);
|
|
72
|
-
}
|
|
73
|
-
/**
|
|
74
13
|
* Get a cache entry with staleness information.
|
|
75
14
|
*
|
|
76
15
|
* Returns { value, isStale: false } for fresh entries,
|
|
@@ -101,6 +40,15 @@ function isrCacheControl(revalidateSeconds, claims = {}) {
|
|
|
101
40
|
};
|
|
102
41
|
}
|
|
103
42
|
/**
|
|
43
|
+
* The route-level `expireTime` only bounds a finite revalidate. Like Next.js,
|
|
44
|
+
* a `revalidate = false` entry keeps no expire of its own and stays until it
|
|
45
|
+
* is invalidated; only a cacheLife expire can bound it.
|
|
46
|
+
* https://github.com/vercel/next.js/blob/v16.2.7/packages/next/src/build/index.ts#L3035-L3058
|
|
47
|
+
*/
|
|
48
|
+
function resolveRouteExpireSeconds(revalidateSeconds, expireSeconds) {
|
|
49
|
+
return revalidateSeconds === false || revalidateSeconds === Infinity ? void 0 : expireSeconds;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
104
52
|
* Store a value in the ISR cache under the given write policy.
|
|
105
53
|
*/
|
|
106
54
|
async function isrSet(key, data, policy) {
|
|
@@ -149,14 +97,15 @@ function coalesceOnDemandRevalidation(key, renderFn) {
|
|
|
149
97
|
*
|
|
150
98
|
* When `errorContext` is provided and the render function fails, the error
|
|
151
99
|
* is reported via `reportRequestError` (instrumentation hook) with
|
|
152
|
-
* `revalidateReason: "stale"
|
|
100
|
+
* `revalidateReason: "stale"`, unless `shouldReport` suppresses an error that
|
|
101
|
+
* an inner render boundary already reported.
|
|
153
102
|
*/
|
|
154
103
|
function triggerBackgroundRegeneration(key, renderFn, errorContext) {
|
|
155
104
|
if (!getCdnCacheAdapter().ownsBackgroundRevalidation) return;
|
|
156
105
|
if (pendingRegenerations.has(key)) return;
|
|
157
|
-
const promise = renderFn().catch((err) => {
|
|
106
|
+
const promise = renderFn().catch(async (err) => {
|
|
158
107
|
console.error(`[vinext] ISR background regeneration failed for ${key}:`, err);
|
|
159
|
-
if (errorContext
|
|
108
|
+
if (errorContext && (errorContext.shouldReport?.(err) ?? true)) await reportRequestError(err, {
|
|
160
109
|
path: key,
|
|
161
110
|
method: "GET",
|
|
162
111
|
headers: {}
|
|
@@ -216,6 +165,10 @@ function buildCacheKey(prefix, pathname, suffix) {
|
|
|
216
165
|
function isrCacheKey(router, pathname, buildId) {
|
|
217
166
|
return buildCacheKey(buildId ? `${router}:${buildId}` : router, pathname);
|
|
218
167
|
}
|
|
168
|
+
/** Build and request time share the same locale-stripped Pages pathname identity. */
|
|
169
|
+
function pagesIsrCacheKey(pathname, buildId, i18nCacheVariant) {
|
|
170
|
+
return isrCacheKey("pages:v2", normalizeCachePathname(normalizePathnameForRouteMatch(pathname)) + (i18nCacheVariant ? `::i18n=${encodeURIComponent(i18nCacheVariant)}` : ""), buildId);
|
|
171
|
+
}
|
|
219
172
|
/**
|
|
220
173
|
* Compute an App Router ISR key for one cache artifact.
|
|
221
174
|
*
|
|
@@ -224,7 +177,7 @@ function isrCacheKey(router, pathname, buildId) {
|
|
|
224
177
|
* Cloudflare KV key under its 512-byte limit for long pathnames.
|
|
225
178
|
*/
|
|
226
179
|
function appIsrCacheKey(pathname, suffix, buildId = process.env.__VINEXT_BUILD_ID) {
|
|
227
|
-
return buildCacheKey(buildId ? `app:${buildId}` : "app", pathname, suffix);
|
|
180
|
+
return buildCacheKey(buildId ? `app:v2:${buildId}` : "app:v2", pathname, suffix);
|
|
228
181
|
}
|
|
229
182
|
function appIsrHtmlKey(pathname) {
|
|
230
183
|
return appIsrCacheKey(pathname, "html");
|
|
@@ -255,7 +208,7 @@ function appIsrRscKey(pathname, mountedSlotsHeader, renderMode = APP_RSC_RENDER_
|
|
|
255
208
|
return appIsrCacheKey(pathname, variant ? `rsc:${variant}` : "rsc");
|
|
256
209
|
}
|
|
257
210
|
function appIsrRouteKey(pathname) {
|
|
258
|
-
return appIsrCacheKey(pathname, "route");
|
|
211
|
+
return appIsrCacheKey(pathname, pathname !== "/" && pathname.endsWith("/") ? "route:trailing-slash" : "route");
|
|
259
212
|
}
|
|
260
213
|
//#endregion
|
|
261
|
-
export { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, appIsrCacheKey, appIsrHtmlKey, appIsrRouteKey, appIsrRscKey, buildAppPageCacheValue, buildPagesCacheValue, coalesceOnDemandRevalidation, getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret, isrCacheControl, isrCacheKey, isrGet, isrSet, isrSetPrerenderedAppPage, normalizeMountedSlotsHeader, triggerBackgroundRegeneration };
|
|
214
|
+
export { PRERENDER_REVALIDATE_HEADER, PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER, appIsrCacheKey, appIsrHtmlKey, appIsrRouteKey, appIsrRscKey, buildAppPageCacheValue, buildPagesCacheValue, coalesceOnDemandRevalidation, getRevalidateSecret, isOnDemandRevalidateRequest, isRevalidateSecret, isrCacheControl, isrCacheKey, isrGet, isrSet, isrSetPrerenderedAppPage, normalizeMountedSlotsHeader, pagesIsrCacheKey, resolveRouteExpireSeconds, triggerBackgroundRegeneration };
|
|
@@ -55,7 +55,7 @@ type DecideIsrOptions = {
|
|
|
55
55
|
* caller's responsibility and must happen *before* this call. `cacheState`
|
|
56
56
|
* must only be `"HIT"` or `"STALE"` when those guards have already passed.
|
|
57
57
|
*/
|
|
58
|
-
declare function decideIsr(options: DecideIsrOptions): IsrDecision;
|
|
58
|
+
export declare function decideIsr(options: DecideIsrOptions): IsrDecision;
|
|
59
59
|
/**
|
|
60
60
|
* Build the `Cache-Control` string for a fresh MISS response whose ISR policy
|
|
61
61
|
* is known (i.e. revalidate is set and > 0). Uses the unbounded SWR form when
|
|
@@ -65,7 +65,7 @@ declare function decideIsr(options: DecideIsrOptions): IsrDecision;
|
|
|
65
65
|
* therefore never has `cacheControlMeta`. `expireSeconds` here is the route
|
|
66
66
|
* config ceiling passed directly from the caller (not a per-entry fallback).
|
|
67
67
|
*/
|
|
68
|
-
declare function buildMissIsrCacheControl(revalidateSeconds: number | false, expireSeconds?: number): string;
|
|
68
|
+
export declare function buildMissIsrCacheControl(revalidateSeconds: number | false, expireSeconds?: number): string;
|
|
69
69
|
/**
|
|
70
70
|
* Build the `Cache-Control` string for a fresh (MISS) app-route response.
|
|
71
71
|
*
|
|
@@ -76,6 +76,6 @@ declare function buildMissIsrCacheControl(revalidateSeconds: number | false, exp
|
|
|
76
76
|
* Used by `applyRouteHandlerRevalidateHeader` which operates on a fresh
|
|
77
77
|
* response that has no per-entry cache metadata.
|
|
78
78
|
*/
|
|
79
|
-
declare function buildAppRouteMissIsrCacheControl(revalidateSeconds: number, expireSeconds?: number): string;
|
|
79
|
+
export declare function buildAppRouteMissIsrCacheControl(revalidateSeconds: number, expireSeconds?: number): string;
|
|
80
80
|
//#endregion
|
|
81
|
-
export { NEVER_CACHE_CONTROL as ISR_NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL as ISR_NO_STORE_CACHE_CONTROL
|
|
81
|
+
export { NEVER_CACHE_CONTROL as ISR_NEVER_CACHE_CONTROL, NO_STORE_CACHE_CONTROL as ISR_NO_STORE_CACHE_CONTROL };
|
|
@@ -16,8 +16,7 @@ type MetadataRouteEntryData = {
|
|
|
16
16
|
headData?: MetadataRouteHeadData | null;
|
|
17
17
|
fileDataBase64?: string;
|
|
18
18
|
};
|
|
19
|
-
declare function createMetadataRouteEntryData(route: MetadataFileRoute): MetadataRouteEntryData;
|
|
20
|
-
declare function createMetadataRouteEntrySource(input: MetadataRouteEntrySourceInput): string;
|
|
21
|
-
declare function createMetadataRouteEntriesSource(routes: readonly MetadataFileRoute[], moduleNames: ReadonlyMap<string, string>): string[];
|
|
22
|
-
//#endregion
|
|
23
|
-
export { createMetadataRouteEntriesSource, createMetadataRouteEntryData, createMetadataRouteEntrySource };
|
|
19
|
+
export declare function createMetadataRouteEntryData(route: MetadataFileRoute): MetadataRouteEntryData;
|
|
20
|
+
export declare function createMetadataRouteEntrySource(input: MetadataRouteEntrySourceInput): string;
|
|
21
|
+
export declare function createMetadataRouteEntriesSource(routes: readonly MetadataFileRoute[], moduleNames: ReadonlyMap<string, string>): string[];
|
|
22
|
+
//#endregion
|
|
@@ -11,7 +11,7 @@ type MetadataRouteBackgroundRegenerator = (key: string, renderFn: () => Promise<
|
|
|
11
11
|
routePath: string;
|
|
12
12
|
routeType: "route";
|
|
13
13
|
}) => void;
|
|
14
|
-
type MetadataRuntimeRoute = MetadataFileRoute & {
|
|
14
|
+
export type MetadataRuntimeRoute = MetadataFileRoute & {
|
|
15
15
|
fileDataBase64?: string;
|
|
16
16
|
};
|
|
17
17
|
type MetadataRouteRequestOptions = {
|
|
@@ -21,9 +21,10 @@ type MetadataRouteRequestOptions = {
|
|
|
21
21
|
isrRouteKey?: (pathname: string) => string;
|
|
22
22
|
isrSet?: MetadataRouteCacheSetter;
|
|
23
23
|
makeThenableParams: MetadataRouteMakeThenableParams;
|
|
24
|
+
routePathname?: string;
|
|
24
25
|
scheduleBackgroundRegeneration?: MetadataRouteBackgroundRegenerator;
|
|
25
26
|
};
|
|
26
|
-
type PrerenderableMetadataRoute = {
|
|
27
|
+
export type PrerenderableMetadataRoute = {
|
|
27
28
|
path: string;
|
|
28
29
|
routePattern: string;
|
|
29
30
|
routeSegments: string[];
|
|
@@ -33,8 +34,7 @@ type PrerenderableMetadataRoute = {
|
|
|
33
34
|
* `"use cache"` function. These are safe to invoke during prerendering and the
|
|
34
35
|
* resulting response can be seeded as an App Route artifact.
|
|
35
36
|
*/
|
|
36
|
-
declare function getPrerenderableMetadataRoutePaths(metadataRoutes: readonly MetadataRuntimeRoute[]): Promise<PrerenderableMetadataRoute[]>;
|
|
37
|
-
declare function isMetadataRouteRequestPath(metadataRoutes: readonly MetadataRuntimeRoute[], cleanPathname: string): boolean;
|
|
38
|
-
declare function handleMetadataRouteRequest(options: MetadataRouteRequestOptions): Promise<Response | null>;
|
|
39
|
-
//#endregion
|
|
40
|
-
export { MetadataRuntimeRoute, PrerenderableMetadataRoute, getPrerenderableMetadataRoutePaths, handleMetadataRouteRequest, isMetadataRouteRequestPath };
|
|
37
|
+
export declare function getPrerenderableMetadataRoutePaths(metadataRoutes: readonly MetadataRuntimeRoute[]): Promise<PrerenderableMetadataRoute[]>;
|
|
38
|
+
export declare function isMetadataRouteRequestPath(metadataRoutes: readonly MetadataRuntimeRoute[], cleanPathname: string): boolean;
|
|
39
|
+
export declare function handleMetadataRouteRequest(options: MetadataRouteRequestOptions): Promise<Response | null>;
|
|
40
|
+
//#endregion
|
|
@@ -1,21 +1,31 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { markFullyBufferedBody } from "./fully-buffered-response.js";
|
|
2
|
+
import { closeAfterResponse, createRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
|
|
3
|
+
import { decodeMatchedParams } from "../routing/utils.js";
|
|
2
4
|
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
3
5
|
import { VINEXT_METADATA_ROUTE_CACHE_HEADER } from "./headers.js";
|
|
4
6
|
import { notFoundResponse } from "./http-error-responses.js";
|
|
5
|
-
import {
|
|
7
|
+
import { beginRouteCacheability, markRouteCacheabilityExplicitResponsePolicy, markRouteCacheabilityResponseBodyComplete, recordRouteCacheability } from "../shims/cacheability-classification.js";
|
|
8
|
+
import { NEVER_CACHE_CONTROL, applyCdnResponseHeaders, hasCdnResponsePolicy } from "./cache-control.js";
|
|
9
|
+
import { buildAppRouteMissIsrCacheControl } from "./isr-decision.js";
|
|
6
10
|
import { isrCacheControl } from "./isr-cache.js";
|
|
7
|
-
import {
|
|
11
|
+
import { resolveClientStaleTimeSeconds } from "../utils/cache-control-metadata.js";
|
|
12
|
+
import { isRenderDynamicLatched } from "../shims/internal/headers-state.js";
|
|
13
|
+
import { getActiveDraftModeState, getHeadersContext, hasDraftModeCookieHeader, replaceHeadersContext } from "../shims/headers.js";
|
|
14
|
+
import { _consumeRequestScopedCacheLife } from "../shims/cache-request-state.js";
|
|
8
15
|
import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchSoftTags } from "../shims/fetch-cache.js";
|
|
9
16
|
import { isValidMetadataImageId, manifestToJson, matchMetadataRoutePattern, robotsToText, sitemapToXml } from "./metadata-routes.js";
|
|
10
17
|
import { applyPrerenderCacheLifeHeader, applyPrerenderCacheTagsHeader } from "./prerender-cache-life-header.js";
|
|
18
|
+
import { canonicalizeAppPageParams } from "./app-page-segment-state.js";
|
|
11
19
|
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
12
20
|
import { buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
|
|
13
|
-
import {
|
|
21
|
+
import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
|
|
22
|
+
import { completeAppRouteHandlerResponse } from "./app-route-handler-execution.js";
|
|
14
23
|
//#region src/server/metadata-route-response.ts
|
|
15
24
|
function isOuterMetadataCacheEnabled() {
|
|
16
25
|
return process.env.NODE_ENV !== "development";
|
|
17
26
|
}
|
|
18
27
|
const routeFunctionCache = /* @__PURE__ */ new WeakMap();
|
|
28
|
+
const userMetadataResponses = /* @__PURE__ */ new WeakSet();
|
|
19
29
|
const USE_CACHE_FUNCTION_SYMBOL = Symbol.for("vinext.useCacheFunction");
|
|
20
30
|
const CACHE_HEADERS = {
|
|
21
31
|
noCache: "no-cache, no-store",
|
|
@@ -48,14 +58,20 @@ function metadataRouteCacheHeader(route) {
|
|
|
48
58
|
if (route.isDynamic && isImageMetadataRoute(route) && process.env.NODE_ENV === "development") return CACHE_HEADERS.noCache;
|
|
49
59
|
return CACHE_HEADERS.revalidate;
|
|
50
60
|
}
|
|
51
|
-
function
|
|
52
|
-
const
|
|
53
|
-
if (
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
61
|
+
function beginMetadataRouteCacheability(route) {
|
|
62
|
+
const dynamic = route.module?.dynamic;
|
|
63
|
+
if (dynamic === "force-static" || dynamic === "error") {
|
|
64
|
+
const current = getHeadersContext();
|
|
65
|
+
const staticContext = createStaticGenerationHeadersContext({
|
|
66
|
+
dynamicConfig: dynamic,
|
|
67
|
+
routeKind: "route",
|
|
68
|
+
routePattern: route.servedUrl,
|
|
69
|
+
draftModeEnabled: getActiveDraftModeState() ?? void 0,
|
|
70
|
+
draftModeSecret: current?.draftModeSecret
|
|
71
|
+
});
|
|
72
|
+
replaceHeadersContext(staticContext);
|
|
73
|
+
}
|
|
74
|
+
beginRouteCacheability("app-route", route.patternParts ? `/${route.patternParts.join("/")}` : route.servedUrl);
|
|
59
75
|
}
|
|
60
76
|
function getMetadataRouteFunctions(route) {
|
|
61
77
|
const cached = routeFunctionCache.get(route);
|
|
@@ -63,7 +79,9 @@ function getMetadataRouteFunctions(route) {
|
|
|
63
79
|
const generateImageMetadata = route.isDynamic && isImageMetadataRoute(route) ? readFunction(route.module, "generateImageMetadata") : null;
|
|
64
80
|
const functions = {
|
|
65
81
|
defaultExport: route.isDynamic ? readFunction(route.module, "default") : null,
|
|
82
|
+
dynamicParams: route.isDynamic && typeof route.module?.dynamicParams === "boolean" ? route.module.dynamicParams : void 0,
|
|
66
83
|
generateImageMetadata,
|
|
84
|
+
generateStaticParams: route.isDynamic ? readFunction(route.module, "generateStaticParams") : null,
|
|
67
85
|
generateSitemaps: route.type === "sitemap" && route.isDynamic ? readFunction(route.module, "generateSitemaps") : null,
|
|
68
86
|
hasGeneratedImageMetadata: route.isDynamic && isImageMetadataRoute(route) && Boolean(generateImageMetadata)
|
|
69
87
|
};
|
|
@@ -126,29 +144,68 @@ function markMetadataRouteCacheValue(value) {
|
|
|
126
144
|
function buildMetadataRouteTags(route, cleanPathname, collectedTags) {
|
|
127
145
|
return buildPageCacheTags(cleanPathname, collectedTags, route.routeSegments ?? [], "route");
|
|
128
146
|
}
|
|
129
|
-
function captureRenderedMetadataRoute(response) {
|
|
130
|
-
const
|
|
147
|
+
async function captureRenderedMetadataRoute(response, route, cleanPathname) {
|
|
148
|
+
const isUserResponse = userMetadataResponses.has(response);
|
|
149
|
+
let completed = false;
|
|
150
|
+
if (isOuterMetadataCacheEnabled()) {
|
|
151
|
+
const result = await completeAppRouteHandlerResponse(response);
|
|
152
|
+
response = result.response;
|
|
153
|
+
completed = result.completed;
|
|
154
|
+
if (completed) markRouteCacheabilityResponseBodyComplete();
|
|
155
|
+
}
|
|
156
|
+
const browserCacheControl = response.headers.get("Cache-Control") ?? void 0;
|
|
157
|
+
const hasUserPolicy = isUserResponse && hasCdnResponsePolicy(response.headers);
|
|
158
|
+
if (hasUserPolicy) markRouteCacheabilityExplicitResponsePolicy();
|
|
159
|
+
const observedCacheLife = _consumeRequestScopedCacheLife();
|
|
131
160
|
const collectedTags = getCollectedFetchTags();
|
|
161
|
+
const revalidate = typeof route.module?.revalidate === "number" ? route.module.revalidate : Infinity;
|
|
162
|
+
const frameworkRevalidate = Math.min(observedCacheLife?.revalidate ?? Infinity, revalidate);
|
|
163
|
+
const cacheLife = {
|
|
164
|
+
...observedCacheLife,
|
|
165
|
+
revalidate: frameworkRevalidate
|
|
166
|
+
};
|
|
167
|
+
const cacheable = (response.status < 400 || response.status === 404) && completed && !isRenderDynamicLatched() && !getActiveDraftModeState() && !hasDraftModeCookieHeader() && route.module?.dynamic !== "force-dynamic" && frameworkRevalidate > 0 && !response.headers.has("set-cookie");
|
|
168
|
+
const cacheControl = cacheable ? buildAppRouteMissIsrCacheControl(frameworkRevalidate, cacheLife?.expire) : NEVER_CACHE_CONTROL;
|
|
169
|
+
if (isUserResponse && !hasUserPolicy) {
|
|
170
|
+
response = new Response(response.body, {
|
|
171
|
+
headers: new Headers(response.headers),
|
|
172
|
+
status: response.status,
|
|
173
|
+
statusText: response.statusText
|
|
174
|
+
});
|
|
175
|
+
applyCdnResponseHeaders(response.headers, { cacheControl: isOuterMetadataCacheEnabled() ? cacheControl : metadataRouteCacheHeader(route) });
|
|
176
|
+
}
|
|
177
|
+
recordRouteCacheability(cacheable ? {
|
|
178
|
+
cacheable: true,
|
|
179
|
+
cacheControl,
|
|
180
|
+
tags: buildMetadataRouteTags(route, cleanPathname, collectedTags)
|
|
181
|
+
} : {
|
|
182
|
+
cacheable: false,
|
|
183
|
+
dynamicUsage: true
|
|
184
|
+
});
|
|
132
185
|
if (process.env.VINEXT_PRERENDER === "1") {
|
|
133
|
-
applyPrerenderCacheLifeHeader(response.headers,
|
|
186
|
+
applyPrerenderCacheLifeHeader(response.headers, {
|
|
187
|
+
...cacheLife,
|
|
188
|
+
revalidate: cacheable ? frameworkRevalidate : 0
|
|
189
|
+
});
|
|
134
190
|
applyPrerenderCacheTagsHeader(response.headers, collectedTags);
|
|
135
191
|
}
|
|
136
192
|
return {
|
|
193
|
+
browserCacheControl,
|
|
137
194
|
cacheLife,
|
|
195
|
+
cacheable,
|
|
138
196
|
collectedTags,
|
|
139
197
|
response
|
|
140
198
|
};
|
|
141
199
|
}
|
|
142
200
|
async function writeRenderedMetadataRoute(options, route, routeKey, rendered, previousEntry) {
|
|
143
|
-
if (!options.isrSet || !rendered.
|
|
201
|
+
if (!options.isrSet || !rendered.cacheable) return;
|
|
144
202
|
const previousCacheControl = previousEntry?.value.cacheControl;
|
|
145
|
-
const
|
|
146
|
-
const
|
|
147
|
-
const expire = rendered.cacheLife?.expire ?? previousCacheControl?.expire ?? defaultCacheLife.expire;
|
|
203
|
+
const revalidate = rendered.cacheLife?.revalidate ?? previousCacheControl?.revalidate ?? (typeof route.module?.revalidate === "number" ? route.module.revalidate : false);
|
|
204
|
+
const expire = rendered.cacheLife?.expire ?? previousCacheControl?.expire;
|
|
148
205
|
const stale = resolveClientStaleTimeSeconds(rendered.cacheLife) ?? previousCacheControl?.stale;
|
|
149
|
-
const value = markMetadataRouteCacheValue(await buildAppRouteCacheValue(rendered.response));
|
|
206
|
+
const value = markMetadataRouteCacheValue(await buildAppRouteCacheValue(rendered.response, rendered.browserCacheControl));
|
|
150
207
|
await options.isrSet(routeKey, value, {
|
|
151
|
-
cacheControl: isrCacheControl(revalidate, {
|
|
208
|
+
cacheControl: isrCacheControl(revalidate === Infinity ? false : revalidate, {
|
|
152
209
|
...typeof expire === "number" ? { expireSeconds: expire } : {},
|
|
153
210
|
...typeof stale === "number" ? { staleSeconds: stale } : {}
|
|
154
211
|
}),
|
|
@@ -160,16 +217,21 @@ async function runMetadataRouteRegeneration(options, route, render, routeKey, pr
|
|
|
160
217
|
try {
|
|
161
218
|
await runWithRequestContext(requestContext, async () => {
|
|
162
219
|
ensureFetchPatch();
|
|
220
|
+
beginMetadataRouteCacheability(route);
|
|
163
221
|
setCurrentFetchSoftTags(buildMetadataRouteTags(route, options.cleanPathname, []));
|
|
164
222
|
const rendered = await render();
|
|
165
|
-
if (rendered)
|
|
223
|
+
if (rendered) try {
|
|
224
|
+
await writeRenderedMetadataRoute(options, route, routeKey, rendered, previousEntry);
|
|
225
|
+
} finally {
|
|
226
|
+
rendered.response.body?.cancel().catch(() => {});
|
|
227
|
+
}
|
|
166
228
|
});
|
|
167
229
|
} finally {
|
|
168
230
|
await closeAfterResponse(requestContext);
|
|
169
231
|
}
|
|
170
232
|
}
|
|
171
|
-
async function readMatchedPrerenderedMetadataRouteResponse(options, route,
|
|
172
|
-
if (!isOuterMetadataCacheEnabled() || !options.isrGet || !options.isrRouteKey) return {
|
|
233
|
+
async function readMatchedPrerenderedMetadataRouteResponse(options, route, render) {
|
|
234
|
+
if (!isOuterMetadataCacheEnabled() || !options.isrGet || !options.isrRouteKey || getActiveDraftModeState() || hasDraftModeCookieHeader() || route.module?.dynamic === "force-dynamic" || route.module?.revalidate === 0) return {
|
|
173
235
|
cachedEntry: null,
|
|
174
236
|
response: null
|
|
175
237
|
};
|
|
@@ -203,7 +265,7 @@ async function readMatchedPrerenderedMetadataRouteResponse(options, route, funct
|
|
|
203
265
|
revalidateSeconds
|
|
204
266
|
})
|
|
205
267
|
};
|
|
206
|
-
if (
|
|
268
|
+
if (options.isrSet && options.scheduleBackgroundRegeneration) {
|
|
207
269
|
const executionContext = getRequestExecutionContext();
|
|
208
270
|
options.scheduleBackgroundRegeneration(routeKey, () => runMetadataRouteRegeneration(options, route, render, routeKey, cached, executionContext), {
|
|
209
271
|
routerKind: "App Router",
|
|
@@ -255,6 +317,39 @@ function matchMetadataRoute(route, cleanPathname, functions, getUrlParts) {
|
|
|
255
317
|
imageId: null
|
|
256
318
|
} : null;
|
|
257
319
|
}
|
|
320
|
+
function metadataRouteParamNames(patternParts) {
|
|
321
|
+
return patternParts.flatMap((part) => {
|
|
322
|
+
if (!part.startsWith(":")) return [];
|
|
323
|
+
return [part.slice(1, part.endsWith("+") || part.endsWith("*") ? -1 : void 0)];
|
|
324
|
+
});
|
|
325
|
+
}
|
|
326
|
+
function metadataRouteOptionalCatchAllParamNames(patternParts) {
|
|
327
|
+
return patternParts.flatMap((part) => part.startsWith(":") && part.endsWith("*") ? [part.slice(1, -1)] : []);
|
|
328
|
+
}
|
|
329
|
+
function metadataRouteRawParams(route, match, routePathname) {
|
|
330
|
+
const urlParts = routePathname.split("/").filter(Boolean);
|
|
331
|
+
if (match.imageId !== null) urlParts.pop();
|
|
332
|
+
const params = Object.create(null);
|
|
333
|
+
let urlIndex = 0;
|
|
334
|
+
for (const part of route.patternParts ?? []) {
|
|
335
|
+
if (!part.startsWith(":")) {
|
|
336
|
+
urlIndex++;
|
|
337
|
+
continue;
|
|
338
|
+
}
|
|
339
|
+
const isCatchAll = part.endsWith("+") || part.endsWith("*");
|
|
340
|
+
const name = part.slice(1, isCatchAll ? -1 : void 0);
|
|
341
|
+
if (!isCatchAll) {
|
|
342
|
+
const value = urlParts[urlIndex++];
|
|
343
|
+
if (value !== void 0) params[name] = value;
|
|
344
|
+
continue;
|
|
345
|
+
}
|
|
346
|
+
const matchedValue = match.params?.[name];
|
|
347
|
+
const valueCount = Array.isArray(matchedValue) ? matchedValue.length : matchedValue ? 1 : 0;
|
|
348
|
+
if (valueCount > 0) params[name] = urlParts.slice(urlIndex, urlIndex + valueCount);
|
|
349
|
+
urlIndex += valueCount;
|
|
350
|
+
}
|
|
351
|
+
return params;
|
|
352
|
+
}
|
|
258
353
|
function findGeneratedSitemapId(entries, rawId) {
|
|
259
354
|
if (!Array.isArray(entries)) return null;
|
|
260
355
|
for (const entry of entries) {
|
|
@@ -286,7 +381,10 @@ async function handleGeneratedSitemap(route, cleanPathname, functions) {
|
|
|
286
381
|
const matchedId = findGeneratedSitemapId(await functions.generateSitemaps({}), rawId);
|
|
287
382
|
if (!matchedId) return notFoundResponse();
|
|
288
383
|
const result = await functions.defaultExport({ id: makeThenableMetadataRouteId(matchedId) });
|
|
289
|
-
if (result instanceof Response)
|
|
384
|
+
if (result instanceof Response) {
|
|
385
|
+
userMetadataResponses.add(result);
|
|
386
|
+
return result;
|
|
387
|
+
}
|
|
290
388
|
if (!isSitemapEntries(result)) throw new TypeError("Metadata sitemap routes must return an array.");
|
|
291
389
|
return markFullyBufferedBody(new Response(sitemapToXml(result), { headers: {
|
|
292
390
|
"Content-Type": route.contentType,
|
|
@@ -323,7 +421,10 @@ async function callDynamicMetadataRoute(route, match, makeThenableParams, functi
|
|
|
323
421
|
id: makeThenableMetadataRouteId(matchedImageId)
|
|
324
422
|
});
|
|
325
423
|
} else result = await functions.defaultExport({ params: paramsThenable });
|
|
326
|
-
if (result instanceof Response)
|
|
424
|
+
if (result instanceof Response) {
|
|
425
|
+
userMetadataResponses.add(result);
|
|
426
|
+
return result;
|
|
427
|
+
}
|
|
327
428
|
let body;
|
|
328
429
|
if (route.type === "sitemap") {
|
|
329
430
|
if (!isSitemapEntries(result)) throw new TypeError("Metadata sitemap routes must return an array.");
|
|
@@ -366,8 +467,8 @@ function isMetadataRouteRequestPath(metadataRoutes, cleanPathname) {
|
|
|
366
467
|
}
|
|
367
468
|
return false;
|
|
368
469
|
}
|
|
369
|
-
async function writeMetadataRouteMiss(options, route,
|
|
370
|
-
if (process.env.VINEXT_PRERENDER === "1" || !isOuterMetadataCacheEnabled() || !rendered.
|
|
470
|
+
async function writeMetadataRouteMiss(options, route, rendered, cachedEntry) {
|
|
471
|
+
if (process.env.VINEXT_PRERENDER === "1" || !isOuterMetadataCacheEnabled() || !rendered.cacheable || !options.isrRouteKey || !options.isrSet) return;
|
|
371
472
|
try {
|
|
372
473
|
await writeRenderedMetadataRoute(options, route, options.isrRouteKey(options.cleanPathname), {
|
|
373
474
|
...rendered,
|
|
@@ -385,16 +486,17 @@ async function handleMetadataRouteRequest(options) {
|
|
|
385
486
|
if (route.type === "sitemap" && route.isDynamic) {
|
|
386
487
|
if (functions.generateSitemaps) {
|
|
387
488
|
if (isGeneratedSitemapPath(route, options.cleanPathname)) {
|
|
489
|
+
beginMetadataRouteCacheability(route);
|
|
388
490
|
const render = async () => {
|
|
389
491
|
setCurrentFetchSoftTags(buildMetadataRouteTags(route, options.cleanPathname, []));
|
|
390
492
|
const response = await handleGeneratedSitemap(route, options.cleanPathname, functions);
|
|
391
|
-
return response ? captureRenderedMetadataRoute(response) : null;
|
|
493
|
+
return response ? captureRenderedMetadataRoute(response, route, options.cleanPathname) : null;
|
|
392
494
|
};
|
|
393
|
-
const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route,
|
|
495
|
+
const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route, render);
|
|
394
496
|
if (cached.response) return cached.response;
|
|
395
497
|
const rendered = await render();
|
|
396
498
|
if (rendered) {
|
|
397
|
-
await writeMetadataRouteMiss(options, route,
|
|
499
|
+
await writeMetadataRouteMiss(options, route, rendered, cached.cachedEntry);
|
|
398
500
|
return rendered.response;
|
|
399
501
|
}
|
|
400
502
|
}
|
|
@@ -403,14 +505,35 @@ async function handleMetadataRouteRequest(options) {
|
|
|
403
505
|
}
|
|
404
506
|
const match = matchMetadataRoute(route, options.cleanPathname, functions, getUrlParts);
|
|
405
507
|
if (!match) continue;
|
|
508
|
+
beginMetadataRouteCacheability(route);
|
|
509
|
+
const rawParams = route.patternParts ? metadataRouteRawParams(route, match, options.routePathname ?? options.cleanPathname) : Object.create(null);
|
|
510
|
+
if (route.patternParts) {
|
|
511
|
+
const runtimeParams = { ...rawParams };
|
|
512
|
+
decodeMatchedParams(runtimeParams);
|
|
513
|
+
match.params = runtimeParams;
|
|
514
|
+
}
|
|
515
|
+
if (route.isDynamic && isImageMetadataRoute(route) && functions.dynamicParams === false) {
|
|
516
|
+
const validationParams = { ...rawParams };
|
|
517
|
+
canonicalizeAppPageParams(validationParams);
|
|
518
|
+
const { validateAppPageDynamicParams } = await import("./app-page-request.js");
|
|
519
|
+
const dynamicParamsResponse = await validateAppPageDynamicParams({
|
|
520
|
+
enforceStaticParamsOnly: true,
|
|
521
|
+
generateStaticParams: functions.generateStaticParams,
|
|
522
|
+
isDynamicRoute: Boolean(route.patternParts),
|
|
523
|
+
optionalCatchAllParamNames: metadataRouteOptionalCatchAllParamNames(route.patternParts ?? []),
|
|
524
|
+
params: validationParams,
|
|
525
|
+
requiredParamNames: metadataRouteParamNames(route.patternParts ?? [])
|
|
526
|
+
});
|
|
527
|
+
if (dynamicParamsResponse) return dynamicParamsResponse;
|
|
528
|
+
}
|
|
406
529
|
const render = async () => {
|
|
407
530
|
setCurrentFetchSoftTags(buildMetadataRouteTags(route, options.cleanPathname, []));
|
|
408
|
-
return captureRenderedMetadataRoute(route.isDynamic ? await callDynamicMetadataRoute(route, match, options.makeThenableParams, functions) : serveStaticMetadataRoute(route));
|
|
531
|
+
return captureRenderedMetadataRoute(route.isDynamic ? await callDynamicMetadataRoute(route, match, options.makeThenableParams, functions) : serveStaticMetadataRoute(route), route, options.cleanPathname);
|
|
409
532
|
};
|
|
410
|
-
const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route,
|
|
533
|
+
const cached = await readMatchedPrerenderedMetadataRouteResponse(options, route, render);
|
|
411
534
|
if (cached.response) return cached.response;
|
|
412
535
|
const rendered = await render();
|
|
413
|
-
await writeMetadataRouteMiss(options, route,
|
|
536
|
+
await writeMetadataRouteMiss(options, route, rendered, cached.cachedEntry);
|
|
414
537
|
return rendered.response;
|
|
415
538
|
}
|
|
416
539
|
return null;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/server/metadata-routes.d.ts
|
|
2
|
-
type SitemapEntry = {
|
|
2
|
+
export type SitemapEntry = {
|
|
3
3
|
url: string;
|
|
4
4
|
lastModified?: string | Date;
|
|
5
5
|
changeFrequency?: "always" | "hourly" | "daily" | "weekly" | "monthly" | "yearly" | "never";
|
|
@@ -44,12 +44,12 @@ type RobotsRule = {
|
|
|
44
44
|
crawlDelay?: number;
|
|
45
45
|
other?: Record<string, string | number | Array<string | number>>;
|
|
46
46
|
};
|
|
47
|
-
type RobotsConfig = {
|
|
47
|
+
export type RobotsConfig = {
|
|
48
48
|
rules: RobotsRule | RobotsRule[];
|
|
49
49
|
sitemap?: string | string[];
|
|
50
50
|
host?: string;
|
|
51
51
|
};
|
|
52
|
-
type ManifestConfig = {
|
|
52
|
+
export type ManifestConfig = {
|
|
53
53
|
name?: string;
|
|
54
54
|
short_name?: string;
|
|
55
55
|
description?: string;
|
|
@@ -66,7 +66,7 @@ type ManifestConfig = {
|
|
|
66
66
|
[key: string]: unknown;
|
|
67
67
|
};
|
|
68
68
|
/** Map of metadata file base names to their URL path and content type. */
|
|
69
|
-
declare const METADATA_FILE_MAP: Record<string, {
|
|
69
|
+
export declare const METADATA_FILE_MAP: Record<string, {
|
|
70
70
|
/** URL path this file is served at */
|
|
71
71
|
urlPath: string;
|
|
72
72
|
/** Content type for the response */
|
|
@@ -83,15 +83,15 @@ declare const METADATA_FILE_MAP: Record<string, {
|
|
|
83
83
|
/**
|
|
84
84
|
* Convert a sitemap array to XML string.
|
|
85
85
|
*/
|
|
86
|
-
declare function sitemapToXml(entries: SitemapEntry[]): string;
|
|
86
|
+
export declare function sitemapToXml(entries: SitemapEntry[]): string;
|
|
87
87
|
/**
|
|
88
88
|
* Convert a robots config to text format.
|
|
89
89
|
*/
|
|
90
|
-
declare function robotsToText(config: RobotsConfig): string;
|
|
90
|
+
export declare function robotsToText(config: RobotsConfig): string;
|
|
91
91
|
/**
|
|
92
92
|
* Convert a manifest config to JSON string.
|
|
93
93
|
*/
|
|
94
|
-
declare function manifestToJson(config: ManifestConfig): string;
|
|
94
|
+
export declare function manifestToJson(config: ManifestConfig): string;
|
|
95
95
|
/**
|
|
96
96
|
* Compute the static URL for a metadata file given its app directory
|
|
97
97
|
* parent path and filename.
|
|
@@ -101,8 +101,8 @@ declare function manifestToJson(config: ManifestConfig): string;
|
|
|
101
101
|
* fillStaticMetadataSegment("/blog/[slug]", "favicon.ico") -> "/blog/-/favicon.ico"
|
|
102
102
|
* fillStaticMetadataSegment("/(group)/group", "icon.png") -> "/group/icon-131tc6.png"
|
|
103
103
|
*/
|
|
104
|
-
declare function fillStaticMetadataSegment(appDirPath: string, lastSegment: string): string;
|
|
105
|
-
type MetadataFileRoute = {
|
|
104
|
+
export declare function fillStaticMetadataSegment(appDirPath: string, lastSegment: string): string;
|
|
105
|
+
export type MetadataFileRoute = {
|
|
106
106
|
/** Type of metadata file */
|
|
107
107
|
type: string;
|
|
108
108
|
/** Whether this is a dynamic (code-generated) route */
|
|
@@ -128,7 +128,7 @@ type MetadataFileRoute = {
|
|
|
128
128
|
/** Sibling .alt.txt file for static social image metadata routes. */
|
|
129
129
|
altFilePath?: string;
|
|
130
130
|
};
|
|
131
|
-
type MetadataRouteHeadData = {
|
|
131
|
+
export type MetadataRouteHeadData = {
|
|
132
132
|
kind: "favicon" | "icon" | "apple";
|
|
133
133
|
href: string;
|
|
134
134
|
type?: string;
|
|
@@ -144,16 +144,15 @@ type MetadataRouteHeadData = {
|
|
|
144
144
|
kind: "manifest";
|
|
145
145
|
href: string;
|
|
146
146
|
};
|
|
147
|
-
declare function getMetadataRouteKind(route: Pick<MetadataFileRoute, "type">): MetadataRouteHeadData["kind"] | null;
|
|
148
|
-
declare function getMetadataImageRouteKind(route: Pick<MetadataFileRoute, "type">): Extract<MetadataRouteHeadData["kind"], "icon" | "apple" | "openGraph" | "twitter"> | null;
|
|
149
|
-
declare function isValidMetadataImageId(id: string): boolean;
|
|
150
|
-
declare function matchMetadataRoutePattern(urlParts: string[], patternParts: string[]): Record<string, string | string[]> | null;
|
|
151
|
-
declare function matchMetadataFileBaseName(metaType: string, baseName: string): string | null;
|
|
147
|
+
export declare function getMetadataRouteKind(route: Pick<MetadataFileRoute, "type">): MetadataRouteHeadData["kind"] | null;
|
|
148
|
+
export declare function getMetadataImageRouteKind(route: Pick<MetadataFileRoute, "type">): Extract<MetadataRouteHeadData["kind"], "icon" | "apple" | "openGraph" | "twitter"> | null;
|
|
149
|
+
export declare function isValidMetadataImageId(id: string): boolean;
|
|
150
|
+
export declare function matchMetadataRoutePattern(urlParts: string[], patternParts: string[]): Record<string, string | string[]> | null;
|
|
151
|
+
export declare function matchMetadataFileBaseName(metaType: string, baseName: string): string | null;
|
|
152
152
|
/** Clear the {@link scanMetadataFiles} cache (call when app files change in dev). */
|
|
153
|
-
declare function invalidateMetadataFileCache(): void;
|
|
153
|
+
export declare function invalidateMetadataFileCache(): void;
|
|
154
154
|
/**
|
|
155
155
|
* Scan an app directory for metadata files.
|
|
156
156
|
*/
|
|
157
|
-
declare function scanMetadataFiles(appDir: string): MetadataFileRoute[];
|
|
158
|
-
//#endregion
|
|
159
|
-
export { METADATA_FILE_MAP, ManifestConfig, MetadataFileRoute, MetadataRouteHeadData, RobotsConfig, SitemapEntry, fillStaticMetadataSegment, getMetadataImageRouteKind, getMetadataRouteKind, invalidateMetadataFileCache, isValidMetadataImageId, manifestToJson, matchMetadataFileBaseName, matchMetadataRoutePattern, robotsToText, scanMetadataFiles, sitemapToXml };
|
|
157
|
+
export declare function scanMetadataFiles(appDir: string): MetadataFileRoute[];
|
|
158
|
+
//#endregion
|