vinext 1.2.1 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -9
- package/dist/_virtual/_rolldown/runtime.js +1 -1
- package/dist/build/action-owner-manifest.d.ts +3 -2
- package/dist/build/action-owner-manifest.js +18 -2
- package/dist/build/app-page-static-eligibility.d.ts +17 -1
- package/dist/build/app-page-static-eligibility.js +80 -13
- package/dist/build/clean-output.d.ts +2 -1
- package/dist/build/client-build-config.d.ts +77 -6
- package/dist/build/client-build-config.js +176 -12
- package/dist/build/client-reference-async.d.ts +48 -0
- package/dist/build/client-reference-async.js +123 -0
- package/dist/build/client-reference-chunks.d.ts +32 -0
- package/dist/build/client-reference-chunks.js +111 -0
- package/dist/build/client-reference-groups.d.ts +171 -0
- package/dist/build/client-reference-groups.js +572 -0
- package/dist/build/css-url-assets.d.ts +2 -1
- package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
- package/dist/build/google-fonts/font-metadata.d.ts +2 -1
- package/dist/build/google-fonts/validate.d.ts +2 -1
- package/dist/build/inline-css.d.ts +2 -1
- package/dist/build/layout-classification.d.ts +2 -1
- package/dist/build/module-dependency-cache.d.ts +33 -1
- package/dist/build/module-dependency-cache.js +51 -1
- package/dist/build/next-client-runtime-manifests.d.ts +12 -2
- package/dist/build/next-client-runtime-manifests.js +19 -4
- package/dist/build/nitro-public-files.d.ts +24 -0
- package/dist/build/nitro-public-files.js +60 -0
- package/dist/build/pages-client-assets-module.js +1 -1
- package/dist/build/precompress.d.ts +2 -1
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-paths.d.ts +2 -1
- package/dist/build/prerender-paths.js +5 -2
- package/dist/build/prerender-phase.d.ts +2 -1
- package/dist/build/prerender-server-pool.js +1 -1
- package/dist/build/prerender.d.ts +3 -2
- package/dist/build/prerender.js +5 -4
- package/dist/build/report.d.ts +2 -1
- package/dist/build/route-classification-injector.d.ts +2 -1
- package/dist/build/route-classification-manifest.d.ts +2 -1
- package/dist/build/run-prerender.d.ts +2 -1
- package/dist/build/server-actions-encryption-key.d.ts +24 -0
- package/dist/build/server-actions-encryption-key.js +101 -0
- package/dist/build/ssr-manifest.d.ts +3 -0
- package/dist/build/ssr-manifest.js +34 -2
- package/dist/build/standalone.d.ts +2 -1
- package/dist/cache/cache-adapters-virtual.d.ts +2 -1
- package/dist/cache.js +1 -2
- package/dist/check.d.ts +2 -1
- package/dist/check.js +4 -0
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli.js +2 -0
- package/dist/client/client-redirect-matcher.js +2 -1
- package/dist/client/client-redirects.d.ts +4 -3
- package/dist/client/client-redirects.js +2 -1
- package/dist/client/client-rewrite-params.d.ts +9 -0
- package/dist/client/client-rewrite-params.js +20 -0
- package/dist/client/client-rewrites.d.ts +2 -1
- package/dist/client/dev-error-overlay-store.d.ts +2 -1
- package/dist/client/dev-error-overlay.js +2 -1
- package/dist/client/index.js +1 -2
- package/dist/client/instrumentation-client-state.js +5 -5
- package/dist/client/navigation-runtime.d.ts +28 -3
- package/dist/client/navigation-runtime.js +42 -11
- package/dist/client/pages-router-link-navigation.d.ts +2 -1
- package/dist/client/vinext-next-data.d.ts +25 -2
- package/dist/client/window-next.d.ts +2 -1
- package/dist/config/config-matchers.d.ts +27 -41
- package/dist/config/config-matchers.js +293 -270
- package/dist/config/config-source.d.ts +34 -0
- package/dist/config/config-source.js +141 -0
- package/dist/config/dotenv.d.ts +2 -1
- package/dist/config/header-params.d.ts +29 -0
- package/dist/config/header-params.js +106 -0
- package/dist/config/next-config.d.ts +20 -6
- package/dist/config/next-config.js +149 -11
- package/dist/config/tsconfig-paths.d.ts +2 -1
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
- package/dist/entries/app-browser-entry.d.ts +34 -6
- package/dist/entries/app-browser-entry.js +103 -40
- package/dist/entries/app-rsc-entry.d.ts +4 -1
- package/dist/entries/app-rsc-entry.js +131 -66
- package/dist/entries/app-rsc-manifest.d.ts +12 -1
- package/dist/entries/app-rsc-manifest.js +73 -1
- package/dist/entries/app-ssr-entry.d.ts +4 -1
- package/dist/entries/app-ssr-entry.js +9 -2
- package/dist/entries/pages-client-entry.d.ts +1 -0
- package/dist/entries/pages-client-entry.js +6 -6
- package/dist/entries/pages-entry-helpers.js +1 -2
- package/dist/entries/pages-server-entry.d.ts +2 -1
- package/dist/entries/pages-server-entry.js +18 -15
- package/dist/entries/runtime-entry-module.d.ts +1 -0
- package/dist/entries/runtime-entry-module.js +4 -1
- package/dist/image/image-adapters-virtual.d.ts +2 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +340 -116
- package/dist/init.js +17 -0
- package/dist/plugins/client-compile-hints.d.ts +30 -0
- package/dist/plugins/client-compile-hints.js +88 -0
- package/dist/plugins/client-reference-dedup.d.ts +2 -1
- package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
- package/dist/plugins/dynamic-preload-metadata.js +1 -1
- package/dist/plugins/environment.d.ts +2 -1
- package/dist/plugins/fonts.js +9 -12
- package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
- package/dist/plugins/import-meta-url.d.ts +2 -1
- package/dist/plugins/og-assets.d.ts +2 -1
- package/dist/plugins/og-assets.js +2 -3
- package/dist/plugins/optimize-imports.d.ts +27 -3
- package/dist/plugins/optimize-imports.js +106 -20
- package/dist/plugins/pages-node-externals.d.ts +2 -1
- package/dist/plugins/remove-console.d.ts +2 -1
- package/dist/plugins/require-condition-resolution.d.ts +2 -1
- package/dist/plugins/rsc-client-reference-loaders.d.ts +53 -1
- package/dist/plugins/rsc-client-reference-loaders.js +447 -27
- package/dist/plugins/rsc-client-shim-excludes.js +2 -0
- package/dist/plugins/sass.d.ts +2 -1
- package/dist/plugins/strip-server-exports.d.ts +2 -1
- package/dist/plugins/styled-jsx.d.ts +2 -1
- package/dist/plugins/transform-result.d.ts +2 -1
- package/dist/plugins/typeof-window.d.ts +2 -1
- package/dist/plugins/use-cache-callable.d.ts +5 -0
- package/dist/plugins/use-cache-callable.js +30 -8
- package/dist/plugins/worker-image-imports.d.ts +1 -0
- package/dist/plugins/worker-image-imports.js +2 -2
- package/dist/plugins/worker-use-server.d.ts +2 -1
- package/dist/routing/app-route-graph.d.ts +41 -1
- package/dist/routing/app-route-graph.js +122 -50
- package/dist/routing/browser-route-manifest.d.ts +44 -0
- package/dist/routing/browser-route-manifest.js +195 -0
- package/dist/routing/hashed-route-patterns.d.ts +4 -0
- package/dist/routing/hashed-route-patterns.js +22 -0
- package/dist/routing/optimistic-route-trie.d.ts +28 -0
- package/dist/routing/optimistic-route-trie.js +102 -0
- package/dist/routing/route-matching.d.ts +2 -1
- package/dist/routing/route-pattern.d.ts +2 -1
- package/dist/routing/route-validation.d.ts +6 -1
- package/dist/routing/route-validation.js +26 -10
- package/dist/server/accept-encoding.d.ts +2 -1
- package/dist/server/app-action-forwarding.d.ts +10 -1
- package/dist/server/app-action-forwarding.js +15 -1
- package/dist/server/app-bfcache-identity.d.ts +2 -1
- package/dist/server/app-browser-action-result.d.ts +2 -1
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
- package/dist/server/app-browser-entry.js +175 -64
- package/dist/server/app-browser-error.d.ts +5 -2
- package/dist/server/app-browser-error.js +7 -2
- package/dist/server/app-browser-history-controller.d.ts +2 -1
- package/dist/server/app-browser-hydration.d.ts +2 -1
- package/dist/server/app-browser-interception-context.d.ts +4 -3
- package/dist/server/app-browser-mpa-navigation.d.ts +1 -0
- package/dist/server/app-browser-mpa-navigation.js +6 -5
- package/dist/server/app-browser-navigation-controller.d.ts +17 -6
- package/dist/server/app-browser-navigation-controller.js +103 -36
- package/dist/server/app-browser-popstate.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
- package/dist/server/app-browser-server-action-client.d.ts +2 -1
- package/dist/server/app-browser-state.d.ts +2 -2
- package/dist/server/app-browser-state.js +1 -1
- package/dist/server/app-browser-stream.d.ts +2 -1
- package/dist/server/app-browser-visible-commit.d.ts +6 -5
- package/dist/server/app-client-reference-manifest.d.ts +31 -0
- package/dist/server/app-client-reference-manifest.js +46 -0
- package/dist/server/app-client-reference-preloader.d.ts +45 -2
- package/dist/server/app-client-reference-preloader.js +48 -10
- package/dist/server/app-elements-wire.d.ts +2 -1
- package/dist/server/app-elements.d.ts +2 -0
- package/dist/server/app-elements.js +3 -1
- package/dist/server/app-fallback-renderer.d.ts +9 -2
- package/dist/server/app-fallback-renderer.js +6 -2
- package/dist/server/app-history-state.d.ts +2 -1
- package/dist/server/app-inline-css-client.d.ts +2 -1
- package/dist/server/app-layout-param-observation.d.ts +2 -1
- package/dist/server/app-metadata-tracing.d.ts +2 -1
- package/dist/server/app-middleware.d.ts +6 -0
- package/dist/server/app-middleware.js +8 -10
- package/dist/server/app-optimistic-routing.d.ts +26 -11
- package/dist/server/app-optimistic-routing.js +38 -96
- package/dist/server/app-page-boundary-render.d.ts +20 -2
- package/dist/server/app-page-boundary-render.js +229 -39
- package/dist/server/app-page-boundary.d.ts +34 -5
- package/dist/server/app-page-boundary.js +40 -7
- package/dist/server/app-page-cache-finalizer.d.ts +2 -1
- package/dist/server/app-page-cache-finalizer.js +1 -1
- package/dist/server/app-page-cache-render.d.ts +10 -2
- package/dist/server/app-page-cache-render.js +15 -2
- package/dist/server/app-page-cache.js +2 -2
- package/dist/server/app-page-dispatch.d.ts +34 -1
- package/dist/server/app-page-dispatch.js +165 -34
- package/dist/server/app-page-element-builder.d.ts +17 -1
- package/dist/server/app-page-element-builder.js +187 -66
- package/dist/server/app-page-execution.d.ts +28 -1
- package/dist/server/app-page-execution.js +114 -5
- package/dist/server/app-page-head.d.ts +95 -3
- package/dist/server/app-page-head.js +307 -152
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
- package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
- package/dist/server/app-page-method.d.ts +2 -1
- package/dist/server/app-page-probe.d.ts +2 -1
- package/dist/server/app-page-render-identity.d.ts +2 -1
- package/dist/server/app-page-render.d.ts +7 -1
- package/dist/server/app-page-render.js +38 -11
- package/dist/server/app-page-request.d.ts +14 -1
- package/dist/server/app-page-request.js +1 -1
- package/dist/server/app-page-route-wiring.d.ts +52 -2
- package/dist/server/app-page-route-wiring.js +197 -47
- package/dist/server/app-page-rsc-render-status.d.ts +3 -1
- package/dist/server/app-page-rsc-render-status.js +1 -0
- package/dist/server/app-page-search-params-observation.d.ts +8 -6
- package/dist/server/app-page-search-params-observation.js +16 -11
- package/dist/server/app-page-segment-plan.d.ts +2 -1
- package/dist/server/app-page-stream.d.ts +38 -1
- package/dist/server/app-page-stream.js +24 -4
- package/dist/server/app-pages-bridge.d.ts +4 -2
- package/dist/server/app-pages-bridge.js +11 -7
- package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
- package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
- package/dist/server/app-prerender-endpoints.d.ts +2 -1
- package/dist/server/app-prerender-static-params.d.ts +2 -1
- package/dist/server/app-prerender-static-params.js +3 -2
- package/dist/server/app-render-dependency.d.ts +11 -1
- package/dist/server/app-render-dependency.js +65 -6
- package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
- package/dist/server/app-request-stage-independent-entry.js +2 -2
- package/dist/server/app-response-stage-entry.d.ts +2 -1
- package/dist/server/app-response-stage-entry.js +3 -3
- package/dist/server/app-route-handler-cache.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.js +4 -2
- package/dist/server/app-route-handler-execution.d.ts +4 -1
- package/dist/server/app-route-handler-execution.js +9 -2
- package/dist/server/app-route-handler-middleware-context.d.ts +2 -1
- package/dist/server/app-route-handler-middleware-context.js +3 -3
- package/dist/server/app-route-handler-response.d.ts +4 -2
- package/dist/server/app-route-handler-response.js +2 -2
- package/dist/server/app-route-handler-runtime.d.ts +4 -1
- package/dist/server/app-route-handler-runtime.js +20 -3
- package/dist/server/app-route-module-loader.d.ts +18 -1
- package/dist/server/app-route-module-loader.js +15 -6
- package/dist/server/app-route-tree-prefetch.d.ts +2 -1
- package/dist/server/app-route-tree.d.ts +20 -0
- package/dist/server/app-route-tree.js +18 -0
- package/dist/server/app-router-entry.js +2 -2
- package/dist/server/app-rsc-combined-handler.js +8 -1
- package/dist/server/app-rsc-error-handler.d.ts +2 -1
- package/dist/server/app-rsc-errors.d.ts +9 -1
- package/dist/server/app-rsc-errors.js +9 -2
- package/dist/server/app-rsc-handler.d.ts +6 -2
- package/dist/server/app-rsc-handler.js +152 -140
- package/dist/server/app-rsc-response-finalizer.d.ts +7 -1
- package/dist/server/app-rsc-response-finalizer.js +4 -1
- package/dist/server/app-rsc-response-stage.js +3 -1
- package/dist/server/app-rsc-route-matching.d.ts +39 -1
- package/dist/server/app-rsc-route-matching.js +25 -1
- package/dist/server/app-segment-config.d.ts +2 -1
- package/dist/server/app-segment-config.js +1 -14
- package/dist/server/app-server-action-execution.d.ts +25 -7
- package/dist/server/app-server-action-execution.js +53 -59
- package/dist/server/app-ssr-entry.d.ts +12 -0
- package/dist/server/app-ssr-entry.js +104 -48
- package/dist/server/app-ssr-error-meta.d.ts +2 -1
- package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
- package/dist/server/app-ssr-stream.d.ts +29 -10
- package/dist/server/app-ssr-stream.js +311 -67
- package/dist/server/app-static-generation.d.ts +2 -1
- package/dist/server/app-streamed-client-references.d.ts +39 -0
- package/dist/server/app-streamed-client-references.js +156 -0
- package/dist/server/app-visited-response-cache.d.ts +2 -1
- package/dist/server/app-worker-stages.d.ts +2 -1
- package/dist/server/artifact-compatibility.d.ts +2 -1
- package/dist/server/bfcache-identity.d.ts +2 -1
- package/dist/server/cache-headers.d.ts +2 -1
- package/dist/server/cacheability-request.d.ts +2 -1
- package/dist/server/client-reuse-manifest.d.ts +2 -1
- package/dist/server/config-headers.d.ts +2 -1
- package/dist/server/config-headers.js +12 -3
- package/dist/server/csp.d.ts +2 -1
- package/dist/server/default-global-not-found-module.d.ts +2 -1
- package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
- package/dist/server/default-http-access-fallback-modules.js +31 -0
- package/dist/server/defer-until-stream-consumed.d.ts +34 -0
- package/dist/server/defer-until-stream-consumed.js +154 -21
- package/dist/server/dev-lockfile.d.ts +32 -2
- package/dist/server/dev-lockfile.js +46 -2
- package/dist/server/dev-module-runner.d.ts +2 -1
- package/dist/server/dev-server.js +10 -3
- package/dist/server/fetch-handler.js +1 -2
- package/dist/server/file-based-metadata.d.ts +2 -1
- package/dist/server/framework-tracer.d.ts +2 -1
- package/dist/server/html.d.ts +1 -0
- package/dist/server/html.js +19 -1
- package/dist/server/http-conditional.d.ts +2 -1
- package/dist/server/http-error-responses.d.ts +2 -1
- package/dist/server/implicit-tags.d.ts +2 -1
- package/dist/server/isolate-shared-promise.d.ts +10 -0
- package/dist/server/isolate-shared-promise.js +33 -0
- package/dist/server/isr-cache.js +3 -2
- package/dist/server/metadata-route-build-data.d.ts +2 -1
- package/dist/server/metadata-route-build-data.js +1 -1
- package/dist/server/metadata-route-response.d.ts +2 -1
- package/dist/server/metadata-route-response.js +1 -1
- package/dist/server/metadata-routes.d.ts +2 -1
- package/dist/server/middleware-matcher-pattern.d.ts +0 -1
- package/dist/server/middleware-matcher-pattern.js +11 -140
- package/dist/server/middleware-matcher.js +5 -6
- package/dist/server/middleware-response-headers.d.ts +31 -0
- package/dist/server/middleware-response-headers.js +57 -1
- package/dist/server/middleware-runtime.d.ts +2 -1
- package/dist/server/middleware-runtime.js +26 -13
- package/dist/server/navigation-planner.d.ts +2 -2
- package/dist/server/navigation-trace.d.ts +2 -1
- package/dist/server/next-error-digest.d.ts +2 -1
- package/dist/server/nitro-public-files-plugin.d.ts +39 -0
- package/dist/server/nitro-public-files-plugin.js +106 -0
- package/dist/server/nitro-public-files.d.ts +22 -0
- package/dist/server/nitro-public-files.js +39 -0
- package/dist/server/opentelemetry-api.d.ts +2 -1
- package/dist/server/operation-token.d.ts +2 -1
- package/dist/server/pages-api-route.d.ts +2 -1
- package/dist/server/pages-asset-tags.d.ts +7 -1
- package/dist/server/pages-asset-tags.js +9 -2
- package/dist/server/pages-body-parser-config.d.ts +2 -1
- package/dist/server/pages-client-assets.d.ts +8 -1
- package/dist/server/pages-data-route.d.ts +2 -1
- package/dist/server/pages-document-asset-props.d.ts +2 -1
- package/dist/server/pages-document-initial-props.d.ts +2 -1
- package/dist/server/pages-execution-tracing.d.ts +2 -1
- package/dist/server/pages-execution-tracing.js +1 -1
- package/dist/server/pages-get-initial-props.d.ts +2 -1
- package/dist/server/pages-i18n.d.ts +18 -0
- package/dist/server/pages-i18n.js +18 -2
- package/dist/server/pages-node-compat.d.ts +5 -3
- package/dist/server/pages-node-compat.js +35 -16
- package/dist/server/pages-page-data.d.ts +7 -1
- package/dist/server/pages-page-data.js +35 -12
- package/dist/server/pages-page-handler.d.ts +3 -2
- package/dist/server/pages-page-handler.js +16 -7
- package/dist/server/pages-page-method.d.ts +2 -1
- package/dist/server/pages-page-response.d.ts +2 -1
- package/dist/server/pages-preview.d.ts +2 -1
- package/dist/server/pages-readiness.d.ts +2 -1
- package/dist/server/pages-request-pipeline.d.ts +8 -2
- package/dist/server/pages-request-pipeline.js +35 -40
- package/dist/server/pages-request-stage-entry.d.ts +2 -1
- package/dist/server/pages-request-stage-entry.js +16 -6
- package/dist/server/pages-response-stage-entry.d.ts +2 -1
- package/dist/server/pages-response-stage-entry.js +1 -1
- package/dist/server/pages-revalidate.js +1 -0
- package/dist/server/pages-route-data-kind.d.ts +2 -1
- package/dist/server/pages-router-entry.js +1 -1
- package/dist/server/prerender-cache-life-header.d.ts +2 -1
- package/dist/server/prerender-route-params.d.ts +2 -1
- package/dist/server/prod-server.d.ts +2 -2
- package/dist/server/prod-server.js +80 -36
- package/dist/server/proxy-trust.d.ts +6 -0
- package/dist/server/proxy-trust.js +12 -6
- package/dist/server/request-log.d.ts +2 -1
- package/dist/server/request-pipeline.d.ts +5 -0
- package/dist/server/request-pipeline.js +12 -1
- package/dist/server/request-tracing.d.ts +2 -1
- package/dist/server/request-tracing.js +1 -1
- package/dist/server/response-start-tracing.js +7 -29
- package/dist/server/rsc-render-stream.d.ts +4 -0
- package/dist/server/rsc-render-stream.js +25 -0
- package/dist/server/seed-cache.d.ts +2 -1
- package/dist/server/seed-cache.js +1 -1
- package/dist/server/server-reference-loader.js +10 -1
- package/dist/server/static-file-cache.d.ts +2 -1
- package/dist/server/static-file-cache.js +16 -3
- package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
- package/dist/server/worker-revalidation-context.d.ts +2 -1
- package/dist/server/worker-stages.d.ts +2 -1
- package/dist/server/worker-utils.js +1 -1
- package/dist/shims/app.d.ts +2 -1
- package/dist/shims/cache-callable-runtime.d.ts +2 -1
- package/dist/shims/cache-handler.d.ts +8 -3
- package/dist/shims/cache-handler.js +32 -11
- package/dist/shims/cache-request-state.d.ts +40 -3
- package/dist/shims/cache-request-state.js +70 -5
- package/dist/shims/cache-runtime.js +47 -19
- package/dist/shims/cache.d.ts +2 -2
- package/dist/shims/cache.js +17 -8
- package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
- package/dist/shims/caught-not-found-boundaries.js +48 -0
- package/dist/shims/cdn-purge-routes.d.ts +25 -0
- package/dist/shims/cdn-purge-routes.js +77 -0
- package/dist/shims/client-locale.js +2 -1
- package/dist/shims/client-page-root.d.ts +2 -1
- package/dist/shims/config.d.ts +2 -1
- package/dist/shims/default-forbidden.d.ts +4 -0
- package/dist/shims/default-forbidden.js +18 -0
- package/dist/shims/default-not-found.d.ts +0 -5
- package/dist/shims/default-not-found.js +5 -41
- package/dist/shims/default-unauthorized.d.ts +4 -0
- package/dist/shims/default-unauthorized.js +18 -0
- package/dist/shims/dynamic.js +17 -4
- package/dist/shims/error-boundary.d.ts +39 -3
- package/dist/shims/error-boundary.js +31 -16
- package/dist/shims/font-google.js +1 -2
- package/dist/shims/font-utils.d.ts +3 -2
- package/dist/shims/font-utils.js +5 -3
- package/dist/shims/form.js +9 -4
- package/dist/shims/http-access-error-fallback.d.ts +7 -0
- package/dist/shims/http-access-error-fallback.js +47 -0
- package/dist/shims/image-props.d.ts +93 -0
- package/dist/shims/image-props.js +323 -0
- package/dist/shims/image.d.ts +4 -39
- package/dist/shims/image.js +4 -319
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
- package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
- package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
- package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
- package/dist/shims/internal/client-reference-loader.d.ts +7 -0
- package/dist/shims/internal/client-reference-loader.js +91 -0
- package/dist/shims/internal/cookie-serialize.d.ts +2 -1
- package/dist/shims/internal/cookies.js +1 -2
- package/dist/shims/internal/headers-state.d.ts +9 -0
- package/dist/shims/internal/headers-state.js +19 -2
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -2
- package/dist/shims/internal/hybrid-client-route-owner-direct.js +31 -14
- package/dist/shims/internal/hybrid-client-route-owner.js +8 -8
- package/dist/shims/internal/interpolate-as.d.ts +2 -1
- package/dist/shims/internal/pages-data-target.d.ts +2 -1
- package/dist/shims/internal/pages-data-url.d.ts +2 -1
- package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
- package/dist/shims/link.js +198 -53
- package/dist/shims/metadata.d.ts +32 -11
- package/dist/shims/metadata.js +88 -26
- package/dist/shims/navigation-errors.d.ts +2 -1
- package/dist/shims/navigation.d.ts +23 -3
- package/dist/shims/navigation.js +91 -25
- package/dist/shims/og.js +35 -10
- package/dist/shims/pages-router-runtime.d.ts +2 -1
- package/dist/shims/ppr-fallback-shell.d.ts +2 -1
- package/dist/shims/request-context.d.ts +13 -0
- package/dist/shims/router.js +33 -43
- package/dist/shims/server.d.ts +31 -4
- package/dist/shims/server.js +58 -10
- package/dist/shims/thenable-params.d.ts +6 -1
- package/dist/shims/thenable-params.js +11 -2
- package/dist/shims/unified-request-context.d.ts +5 -0
- package/dist/shims/unified-request-context.js +5 -3
- package/dist/typegen.d.ts +2 -1
- package/dist/utils/asset-prefix.d.ts +7 -0
- package/dist/utils/asset-prefix.js +10 -1
- package/dist/utils/client-build-manifest.d.ts +4 -1
- package/dist/utils/client-build-manifest.js +20 -6
- package/dist/utils/client-entry-manifest.d.ts +13 -0
- package/dist/utils/client-entry-manifest.js +20 -1
- package/dist/utils/client-reference-chunks.d.ts +45 -0
- package/dist/utils/client-reference-chunks.js +30 -0
- package/dist/utils/client-runtime-metadata.d.ts +10 -1
- package/dist/utils/client-runtime-metadata.js +53 -9
- package/dist/utils/compare.d.ts +9 -0
- package/dist/utils/compare.js +15 -1
- package/dist/utils/lazy-chunks.d.ts +18 -0
- package/dist/utils/lazy-chunks.js +27 -1
- package/dist/utils/manifest-paths.d.ts +14 -0
- package/dist/utils/manifest-paths.js +22 -1
- package/dist/utils/middleware-request-headers.d.ts +2 -1
- package/dist/utils/path-to-regexp.d.ts +21 -0
- package/dist/{server/middleware-path-to-regexp.js → utils/path-to-regexp.js} +14 -11
- package/dist/utils/plugin-react-version.d.ts +15 -0
- package/dist/utils/plugin-react-version.js +64 -0
- package/dist/utils/project.d.ts +2 -1
- package/dist/utils/project.js +9 -1
- package/dist/utils/public-routes.d.ts +2 -0
- package/dist/utils/public-routes.js +18 -7
- package/dist/utils/query.d.ts +2 -1
- package/dist/utils/sorted-array.d.ts +2 -1
- package/dist/utils/vite-cli-invocation.d.ts +2 -1
- package/package.json +5 -5
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
- package/dist/server/default-not-found-module.d.ts +0 -19
- package/dist/server/default-not-found-module.js +0 -18
- package/dist/server/middleware-path-to-regexp.d.ts +0 -13
- package/dist/server/rsc-stream-hints.d.ts +0 -21
- package/dist/server/rsc-stream-hints.js +0 -227
- package/dist/utils/regex-safety.d.ts +0 -17
- package/dist/utils/regex-safety.js +0 -789
|
@@ -35,13 +35,25 @@ type AppRscInterceptForMatching = {
|
|
|
35
35
|
interceptLoadings?: readonly unknown[];
|
|
36
36
|
interceptLoadingTreePositions?: readonly number[];
|
|
37
37
|
interceptNotFoundBranchSegments?: readonly string[];
|
|
38
|
+
interceptNotFounds?: readonly unknown[];
|
|
39
|
+
interceptNotFoundTreePositions?: readonly number[];
|
|
38
40
|
__loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
|
|
39
41
|
__loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
|
|
42
|
+
__loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
|
|
40
43
|
page: unknown;
|
|
41
44
|
__pageLoader?: (() => Promise<unknown>) | null;
|
|
42
45
|
notFound?: unknown;
|
|
43
46
|
__loadNotFound?: (() => Promise<unknown>) | null;
|
|
44
47
|
notFoundTreePosition?: number | null;
|
|
48
|
+
interceptForbiddens?: readonly unknown[];
|
|
49
|
+
interceptForbiddenTreePositions?: readonly number[];
|
|
50
|
+
__loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
|
|
51
|
+
interceptUnauthorizeds?: readonly unknown[];
|
|
52
|
+
interceptUnauthorizedTreePositions?: readonly number[];
|
|
53
|
+
__loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
|
|
54
|
+
interceptErrors?: readonly unknown[];
|
|
55
|
+
interceptErrorTreePositions?: readonly number[];
|
|
56
|
+
__loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
|
|
45
57
|
params: readonly string[];
|
|
46
58
|
};
|
|
47
59
|
type AppRscSlotForMatching = {
|
|
@@ -60,13 +72,25 @@ type AppRscSiblingInterceptForMatching = {
|
|
|
60
72
|
interceptLoadings?: readonly unknown[];
|
|
61
73
|
interceptLoadingTreePositions?: readonly number[];
|
|
62
74
|
interceptNotFoundBranchSegments?: readonly string[];
|
|
75
|
+
interceptNotFounds?: readonly unknown[];
|
|
76
|
+
interceptNotFoundTreePositions?: readonly number[];
|
|
63
77
|
__loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
|
|
64
78
|
__loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
|
|
79
|
+
__loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
|
|
65
80
|
page: unknown;
|
|
66
81
|
__pageLoader?: (() => Promise<unknown>) | null;
|
|
67
82
|
notFound?: unknown;
|
|
68
83
|
__loadNotFound?: (() => Promise<unknown>) | null;
|
|
69
84
|
notFoundTreePosition?: number | null;
|
|
85
|
+
interceptForbiddens?: readonly unknown[];
|
|
86
|
+
interceptForbiddenTreePositions?: readonly number[];
|
|
87
|
+
__loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
|
|
88
|
+
interceptUnauthorizeds?: readonly unknown[];
|
|
89
|
+
interceptUnauthorizedTreePositions?: readonly number[];
|
|
90
|
+
__loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
|
|
91
|
+
interceptErrors?: readonly unknown[];
|
|
92
|
+
interceptErrorTreePositions?: readonly number[];
|
|
93
|
+
__loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
|
|
70
94
|
params: readonly string[];
|
|
71
95
|
};
|
|
72
96
|
type AppRscRouteForMatching = {
|
|
@@ -108,18 +132,31 @@ type AppRscInterceptLookupEntry = {
|
|
|
108
132
|
interceptLoadings?: readonly unknown[];
|
|
109
133
|
interceptLoadingTreePositions?: readonly number[];
|
|
110
134
|
interceptNotFoundBranchSegments?: readonly string[];
|
|
135
|
+
interceptNotFounds?: readonly unknown[];
|
|
136
|
+
interceptNotFoundTreePositions?: readonly number[];
|
|
111
137
|
__loadInterceptLayouts?: readonly (() => Promise<unknown>)[] | null;
|
|
112
138
|
__loadInterceptLoadings?: readonly (() => Promise<unknown>)[] | null;
|
|
139
|
+
__loadInterceptNotFounds?: readonly (() => Promise<unknown>)[] | null;
|
|
113
140
|
page: unknown;
|
|
114
141
|
__pageLoader?: (() => Promise<unknown>) | null;
|
|
115
142
|
notFound: unknown;
|
|
116
143
|
__loadNotFound?: (() => Promise<unknown>) | null;
|
|
117
144
|
notFoundTreePosition?: number | null;
|
|
145
|
+
interceptForbiddens?: readonly unknown[];
|
|
146
|
+
interceptForbiddenTreePositions?: readonly number[];
|
|
147
|
+
__loadInterceptForbiddens?: readonly (() => Promise<unknown>)[] | null;
|
|
148
|
+
interceptUnauthorizeds?: readonly unknown[];
|
|
149
|
+
interceptUnauthorizedTreePositions?: readonly number[];
|
|
150
|
+
__loadInterceptUnauthorizeds?: readonly (() => Promise<unknown>)[] | null;
|
|
151
|
+
interceptErrors?: readonly unknown[];
|
|
152
|
+
interceptErrorTreePositions?: readonly number[];
|
|
153
|
+
__loadInterceptErrors?: readonly (() => Promise<unknown>)[] | null;
|
|
118
154
|
__loadState: AppRscInterceptLoadState;
|
|
119
155
|
params: readonly string[];
|
|
120
156
|
slotId: string | null;
|
|
121
157
|
targetRouteGraphId: string | null;
|
|
122
158
|
};
|
|
159
|
+
export declare function isAppRouteHandlerRoute(route: Pick<AppRscRouteForMatching, "__loadRouteHandler" | "routeHandler">): boolean;
|
|
123
160
|
/**
|
|
124
161
|
* @param decodedPathnamePatterns Static page patterns that answer their
|
|
125
162
|
* segment-decoded pathname (built by `buildAppDecodedPathnamePatterns`).
|
|
@@ -140,4 +177,5 @@ export declare function createAppRscRouteMatcher<Route extends AppRscRouteForMat
|
|
|
140
177
|
} | null;
|
|
141
178
|
findIntercept(pathname: string, sourcePathname?: string | null, interceptionId?: string | null): AppRscInterceptMatch | null;
|
|
142
179
|
};
|
|
143
|
-
//#endregion
|
|
180
|
+
//#endregion
|
|
181
|
+
export {};
|
|
@@ -209,6 +209,9 @@ function createInterceptLookup(routes) {
|
|
|
209
209
|
interceptLoadings: intercept.interceptLoadings,
|
|
210
210
|
interceptLoadingTreePositions: intercept.interceptLoadingTreePositions,
|
|
211
211
|
interceptNotFoundBranchSegments: intercept.interceptNotFoundBranchSegments,
|
|
212
|
+
interceptNotFounds: intercept.interceptNotFounds,
|
|
213
|
+
interceptNotFoundTreePositions: intercept.interceptNotFoundTreePositions,
|
|
214
|
+
__loadInterceptNotFounds: intercept.__loadInterceptNotFounds,
|
|
212
215
|
__loadInterceptLayouts: intercept.__loadInterceptLayouts,
|
|
213
216
|
__loadInterceptLoadings: intercept.__loadInterceptLoadings,
|
|
214
217
|
page: intercept.page,
|
|
@@ -216,6 +219,15 @@ function createInterceptLookup(routes) {
|
|
|
216
219
|
notFound: intercept.notFound,
|
|
217
220
|
__loadNotFound: intercept.__loadNotFound,
|
|
218
221
|
notFoundTreePosition: intercept.notFoundTreePosition,
|
|
222
|
+
interceptForbiddens: intercept.interceptForbiddens,
|
|
223
|
+
interceptForbiddenTreePositions: intercept.interceptForbiddenTreePositions,
|
|
224
|
+
__loadInterceptForbiddens: intercept.__loadInterceptForbiddens,
|
|
225
|
+
interceptUnauthorizeds: intercept.interceptUnauthorizeds,
|
|
226
|
+
interceptUnauthorizedTreePositions: intercept.interceptUnauthorizedTreePositions,
|
|
227
|
+
__loadInterceptUnauthorizeds: intercept.__loadInterceptUnauthorizeds,
|
|
228
|
+
interceptErrors: intercept.interceptErrors,
|
|
229
|
+
interceptErrorTreePositions: intercept.interceptErrorTreePositions,
|
|
230
|
+
__loadInterceptErrors: intercept.__loadInterceptErrors,
|
|
219
231
|
__loadState: {
|
|
220
232
|
page: intercept.page,
|
|
221
233
|
pageLoading: null,
|
|
@@ -248,6 +260,9 @@ function createInterceptLookup(routes) {
|
|
|
248
260
|
interceptLoadings: intercept.interceptLoadings,
|
|
249
261
|
interceptLoadingTreePositions: intercept.interceptLoadingTreePositions,
|
|
250
262
|
interceptNotFoundBranchSegments: intercept.interceptNotFoundBranchSegments,
|
|
263
|
+
interceptNotFounds: intercept.interceptNotFounds,
|
|
264
|
+
interceptNotFoundTreePositions: intercept.interceptNotFoundTreePositions,
|
|
265
|
+
__loadInterceptNotFounds: intercept.__loadInterceptNotFounds,
|
|
251
266
|
__loadInterceptLayouts: intercept.__loadInterceptLayouts,
|
|
252
267
|
__loadInterceptLoadings: intercept.__loadInterceptLoadings,
|
|
253
268
|
page: intercept.page,
|
|
@@ -255,6 +270,15 @@ function createInterceptLookup(routes) {
|
|
|
255
270
|
notFound: intercept.notFound,
|
|
256
271
|
__loadNotFound: intercept.__loadNotFound,
|
|
257
272
|
notFoundTreePosition: intercept.notFoundTreePosition,
|
|
273
|
+
interceptForbiddens: intercept.interceptForbiddens,
|
|
274
|
+
interceptForbiddenTreePositions: intercept.interceptForbiddenTreePositions,
|
|
275
|
+
__loadInterceptForbiddens: intercept.__loadInterceptForbiddens,
|
|
276
|
+
interceptUnauthorizeds: intercept.interceptUnauthorizeds,
|
|
277
|
+
interceptUnauthorizedTreePositions: intercept.interceptUnauthorizedTreePositions,
|
|
278
|
+
__loadInterceptUnauthorizeds: intercept.__loadInterceptUnauthorizeds,
|
|
279
|
+
interceptErrors: intercept.interceptErrors,
|
|
280
|
+
interceptErrorTreePositions: intercept.interceptErrorTreePositions,
|
|
281
|
+
__loadInterceptErrors: intercept.__loadInterceptErrors,
|
|
258
282
|
__loadState: {
|
|
259
283
|
page: intercept.page,
|
|
260
284
|
pageLoading: null,
|
|
@@ -282,4 +306,4 @@ function pickPatternParams(params, patternParts) {
|
|
|
282
306
|
return picked;
|
|
283
307
|
}
|
|
284
308
|
//#endregion
|
|
285
|
-
export { SIBLING_PAGE_INTERCEPT_SLOT_KEY, createAppRscRouteMatcher };
|
|
309
|
+
export { SIBLING_PAGE_INTERCEPT_SLOT_KEY, createAppRscRouteMatcher, isAppRouteHandlerRoute };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { compareFolderNames } from "../utils/compare.js";
|
|
1
2
|
import { isEdgeApiRuntime } from "./edge-api-runtime.js";
|
|
2
3
|
//#region src/server/app-segment-config.ts
|
|
3
4
|
const DYNAMIC_VALUES = /* @__PURE__ */ new Set([
|
|
@@ -310,20 +311,6 @@ function hasGenerateStaticParamsExport(segment) {
|
|
|
310
311
|
}
|
|
311
312
|
const DEFAULT_SEGMENT_NAME = "__DEFAULT__";
|
|
312
313
|
/**
|
|
313
|
-
* Turbopack reads a folder's subfolders from a `BTreeMap<RcStr, _>`, whose
|
|
314
|
-
* keys compare as Rust `str`s: by UTF-8 bytes. That is Unicode code point
|
|
315
|
-
* order, which JavaScript's `<` (UTF-16 code units) doesn't match above the
|
|
316
|
-
* Basic Multilingual Plane.
|
|
317
|
-
* https://github.com/vercel/next.js/blob/v16.2.7/crates/next-core/src/app_structure.rs#L188-L192
|
|
318
|
-
* https://github.com/vercel/next.js/blob/v16.2.7/turbopack/crates/turbo-rcstr/src/lib.rs#L350-L354
|
|
319
|
-
*/
|
|
320
|
-
function compareFolderNames(a, b) {
|
|
321
|
-
const left = Array.from(a, (char) => char.codePointAt(0) ?? 0);
|
|
322
|
-
const right = Array.from(b, (char) => char.codePointAt(0) ?? 0);
|
|
323
|
-
for (let index = 0; index < Math.min(left.length, right.length); index++) if (left[index] !== right[index]) return left[index] - right[index];
|
|
324
|
-
return left.length - right.length;
|
|
325
|
-
}
|
|
326
|
-
/**
|
|
327
314
|
* Collect the loader-tree segments of an App page route from its layout, page
|
|
328
315
|
* and parallel-slot modules, for `lastDynamicSegmentHasGenerateStaticParams`.
|
|
329
316
|
*
|
|
@@ -19,8 +19,10 @@ type AppServerActionErrorReporter = (error: unknown, request: {
|
|
|
19
19
|
renderSource: "react-server-components-payload";
|
|
20
20
|
revalidateReason: undefined;
|
|
21
21
|
}) => void;
|
|
22
|
-
|
|
23
|
-
type
|
|
22
|
+
/** React's `decodeAction()`; bound references resolve through `serverManifest`. */
|
|
23
|
+
type AppServerActionDecoder = (body: FormData, serverManifest: object) => Promise<unknown>;
|
|
24
|
+
/** React's `decodeFormState()`, which decodes the bound references again. */
|
|
25
|
+
type AppServerActionFormStateDecoder = (actionResult: unknown, body: FormData, serverManifest: object) => Promise<ReactFormState | undefined>;
|
|
24
26
|
type ReadFormDataWithLimit = (request: Request, maxBytes: number) => Promise<FormData>;
|
|
25
27
|
type ReadBodyWithLimit = (request: Request, maxBytes: number) => Promise<string>;
|
|
26
28
|
type AppServerActionReturnValue = {
|
|
@@ -136,19 +138,22 @@ export type HandleProgressiveServerActionRequestOptions = {
|
|
|
136
138
|
cleanPathname: string;
|
|
137
139
|
clearRequestContext: () => void;
|
|
138
140
|
contentType: string;
|
|
141
|
+
/** plugin-rsc's server manifest, which resolves any export of a server-reference module. */
|
|
142
|
+
createServerManifest: () => object;
|
|
139
143
|
decodeAction: AppServerActionDecoder;
|
|
140
144
|
decodeFormState: AppServerActionFormStateDecoder;
|
|
141
145
|
getAndClearPendingCookies: () => string[];
|
|
142
146
|
getDraftModeCookieHeader: () => string | null | undefined;
|
|
143
147
|
forwardAction?: (actionId: string) => Promise<Response | null>;
|
|
144
|
-
|
|
148
|
+
/** Whether these Server Actions belong to the current route. */
|
|
149
|
+
validateActionReferences: (actionIds: readonly string[]) => boolean;
|
|
145
150
|
/**
|
|
146
151
|
* Whether the posted-to route resolves to an App Router *page* (as opposed to
|
|
147
152
|
* a route handler or no match). Multipart form POSTs to a page are always
|
|
148
153
|
* server-action attempts in Next.js, so a body that decodes to no action must
|
|
149
154
|
* surface as 404 action-not-found rather than rendering the page. Route
|
|
150
|
-
* handlers
|
|
151
|
-
*
|
|
155
|
+
* handlers and Pages routes never reach this dispatch (#3886); unmatched
|
|
156
|
+
* routes fall through. See issue #1340.
|
|
152
157
|
*/
|
|
153
158
|
hasPageRoute: boolean;
|
|
154
159
|
maxActionBodySize: number;
|
|
@@ -176,7 +181,13 @@ export type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServ
|
|
|
176
181
|
createPayloadRouteId: (pathname: string, interceptionContext: string | null) => string;
|
|
177
182
|
createRscOnErrorHandler: (request: Request, pathname: string, pattern: string, overrides?: AppRenderErrorContextOverrides) => (error: unknown) => unknown;
|
|
178
183
|
createTemporaryReferenceSet: () => TTemporaryReferences;
|
|
179
|
-
|
|
184
|
+
/** plugin-rsc's server manifest, which resolves any export of a server-reference module. */
|
|
185
|
+
createServerManifest: () => object;
|
|
186
|
+
/**
|
|
187
|
+
* React's `decodeReply()`. Every server reference in the arguments resolves
|
|
188
|
+
* through `serverManifest`, so the manifest bounds which functions can decode.
|
|
189
|
+
*/
|
|
190
|
+
decodeReply: (body: string | FormData, serverManifest: object, options: DecodeServerActionReplyOptions<TTemporaryReferences>) => Promise<unknown[]> | unknown[];
|
|
180
191
|
draftModeSecret: string;
|
|
181
192
|
/**
|
|
182
193
|
* Hydrate a route's lazy page/route-handler modules before reading
|
|
@@ -192,6 +203,12 @@ export type HandleServerActionRscRequestOptions<TElement, TRoute extends AppServ
|
|
|
192
203
|
isEdgeRuntime?: boolean;
|
|
193
204
|
isRscRequest: boolean;
|
|
194
205
|
loadServerAction: (actionId: string) => Promise<unknown>;
|
|
206
|
+
/**
|
|
207
|
+
* Whether these Server Actions belong to the current route. Next.js resolves
|
|
208
|
+
* argument references through the current page's server module map, so an
|
|
209
|
+
* action owned by another route must not decode into a callable function.
|
|
210
|
+
*/
|
|
211
|
+
validateActionReferences: (actionIds: readonly string[]) => boolean;
|
|
195
212
|
/**
|
|
196
213
|
* Match an action redirect target. Must use *request* route identity — the
|
|
197
214
|
* raw, undecoded pathname — because the target is rendered as if the client
|
|
@@ -265,4 +282,5 @@ export declare function applyActionRedirectBasePath(url: string, basePath: strin
|
|
|
265
282
|
export declare function isProgressiveServerActionRequest(request: Pick<Request, "method">, contentType: string, actionId: string | null): boolean;
|
|
266
283
|
export declare function handleProgressiveServerActionRequest(options: HandleProgressiveServerActionRequestOptions): Promise<Response | ProgressiveServerActionResult | null>;
|
|
267
284
|
export declare function handleServerActionRscRequest<TElement, TRoute extends AppServerActionRoute, TInterceptOpts, TTemporaryReferences, TPage = unknown>(options: HandleServerActionRscRequestOptions<TElement, TRoute, TInterceptOpts, TTemporaryReferences, TPage>): Promise<Response | null>;
|
|
268
|
-
//#endregion
|
|
285
|
+
//#endregion
|
|
286
|
+
export {};
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { runOutsideRequestScopes } from "../shims/internal/als-registry.js";
|
|
2
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
2
3
|
import { VINEXT_MW_CTX_HEADER } from "../utils/protocol-headers.js";
|
|
3
4
|
import { buildRequestHeadersFromMiddlewareResponse } from "../utils/middleware-request-headers.js";
|
|
4
5
|
import { parseEdgeRequestCookieHeader } from "../utils/parse-cookie.js";
|
|
@@ -9,22 +10,23 @@ import { ACTION_FORWARDED_HEADER, ACTION_REDIRECT_HEADER, ACTION_REDIRECT_STATUS
|
|
|
9
10
|
import { internalServerErrorResponse, payloadTooLargeResponse } from "./http-error-responses.js";
|
|
10
11
|
import { attachRequestCfMetadata, validateCsrfOrigin, validateServerActionPayload } from "./request-pipeline.js";
|
|
11
12
|
import { splitPathSegments } from "../routing/utils.js";
|
|
13
|
+
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
14
|
+
import { shareIsolatePromise } from "./isolate-shared-promise.js";
|
|
12
15
|
import { APP_RSC_RENDER_MODE_NAVIGATION } from "./app-rsc-render-mode.js";
|
|
13
16
|
import { isDraftModeRequest, setHeadersContext } from "../shims/headers.js";
|
|
14
17
|
import { _drainPendingRevalidations, getAndClearActionRevalidationKind } from "../shims/cache-request-state.js";
|
|
15
18
|
import { setCurrentFetchCacheMode, setCurrentFetchRevalidate, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
|
|
16
19
|
import { readStreamAsTextWithLimit } from "../utils/text-stream.js";
|
|
17
|
-
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
18
20
|
import { VINEXT_RSC_CONTENT_TYPE, applyRscCompatibilityIdHeader, createRscRequestUrl, stripRscCacheBustingSearchParam } from "./app-rsc-cache-busting.js";
|
|
19
21
|
import { mergeMiddlewareResponseHeaders } from "./middleware-response-headers.js";
|
|
20
22
|
import { applyEdgeRuntimeHeader } from "./app-page-response.js";
|
|
21
23
|
import { getNextErrorDigest, parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
|
|
22
24
|
import { hasDigest } from "./app-rsc-errors.js";
|
|
23
|
-
import { buildAppPageTags } from "./implicit-tags.js";
|
|
24
|
-
import "./app-page-stream.js";
|
|
25
25
|
import { getSetCookieName } from "./cookie-utils.js";
|
|
26
26
|
import { createServerActionNotFoundResponse, getServerActionNotFoundMessage, isServerActionNotFoundError } from "./server-action-not-found.js";
|
|
27
27
|
import { resolveAppPageNavigationParams } from "./app-page-element-builder.js";
|
|
28
|
+
import "./app-page-stream.js";
|
|
29
|
+
import { buildAppPageTags } from "./implicit-tags.js";
|
|
28
30
|
import { resolveAppPageActionRerenderTarget } from "./app-page-request.js";
|
|
29
31
|
import { createRootParamsUsageController, runWithRootParamsUsage } from "../shims/root-params.js";
|
|
30
32
|
import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
|
|
@@ -43,50 +45,47 @@ import { markAppRscResponseConfigHeadersApplied } from "./app-rsc-response-final
|
|
|
43
45
|
*
|
|
44
46
|
* The result is awaited inside the callback because `decodeReply()` returns a
|
|
45
47
|
* lazy thenable that only resolves (and imports) its references once awaited.
|
|
48
|
+
*
|
|
49
|
+
* The imports are shared with every later request that names the same modules,
|
|
50
|
+
* and the server-reference loader cannot see this request's execution context
|
|
51
|
+
* once it has been left, so the request is kept alive here until they settle.
|
|
52
|
+
* From here a request that starts a load cannot be told apart from one that
|
|
53
|
+
* joins it, so each keeps its own decode alive; it awaits that decode anyway.
|
|
46
54
|
*/
|
|
47
55
|
function loadOutsideRequestScopes(load) {
|
|
48
|
-
|
|
56
|
+
const ctx = getRequestExecutionContext();
|
|
57
|
+
return shareIsolatePromise(runOutsideRequestScopes(async () => await load()), ctx);
|
|
49
58
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
const rootMetadata = chunks.get("0");
|
|
64
|
-
if (typeof rootMetadata !== "object" || rootMetadata === null || typeof Reflect.get(rootMetadata, "id") !== "string") return null;
|
|
65
|
-
const actionId = Reflect.get(rootMetadata, "id");
|
|
66
|
-
const referencedActionIds = /* @__PURE__ */ new Set([actionId]);
|
|
67
|
-
for (const chunk of chunks.values()) {
|
|
68
|
-
const values = [chunk];
|
|
69
|
-
while (values.length > 0) {
|
|
70
|
-
const value = values.pop();
|
|
71
|
-
if (typeof value === "string") {
|
|
72
|
-
if (!value.startsWith("$h")) continue;
|
|
73
|
-
const [encodedChunkId, ...path] = value.slice(2).split(":");
|
|
74
|
-
const chunkId = Number.parseInt(encodedChunkId, 16);
|
|
75
|
-
if (!Number.isSafeInteger(chunkId) || chunkId < 0) return null;
|
|
76
|
-
let metadata = chunks.get(String(chunkId));
|
|
77
|
-
for (const segment of path) {
|
|
78
|
-
if (typeof metadata !== "object" || metadata === null || !Object.hasOwn(metadata, segment)) return null;
|
|
79
|
-
metadata = Reflect.get(metadata, segment);
|
|
80
|
-
}
|
|
81
|
-
if (typeof metadata !== "object" || metadata === null || typeof Reflect.get(metadata, "id") !== "string") return null;
|
|
82
|
-
referencedActionIds.add(Reflect.get(metadata, "id"));
|
|
83
|
-
} else if (typeof value === "object" && value !== null) values.push(...Object.values(value));
|
|
84
|
-
}
|
|
59
|
+
/**
|
|
60
|
+
* Read the action a bound `$ACTION_REF_` submission names, which Next.js checks
|
|
61
|
+
* before decoding (`areAllActionIdsValid()`). The bound arguments are left to
|
|
62
|
+
* React, which resolves their references through the route-scoped manifest.
|
|
63
|
+
*/
|
|
64
|
+
function readBoundProgressiveActionId(body, referencePrefix) {
|
|
65
|
+
const descriptors = body.getAll(`$ACTION_${referencePrefix}:0`);
|
|
66
|
+
if (descriptors.length !== 1 || typeof descriptors[0] !== "string") return null;
|
|
67
|
+
let descriptor;
|
|
68
|
+
try {
|
|
69
|
+
descriptor = JSON.parse(descriptors[0]);
|
|
70
|
+
} catch {
|
|
71
|
+
return null;
|
|
85
72
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
73
|
+
const actionId = typeof descriptor === "object" && descriptor !== null ? Reflect.get(descriptor, "id") : void 0;
|
|
74
|
+
return typeof actionId === "string" ? actionId : null;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Scope the manifest React resolves server references through to the current
|
|
78
|
+
* route's Server Actions, as Next.js scopes its server module map to the
|
|
79
|
+
* current page. React then fails to resolve any other id wherever a payload
|
|
80
|
+
* carries it, so that module never loads. A denied lookup throws because React
|
|
81
|
+
* retries a missing `module#a#b` as module `module#a` with export `b`, which
|
|
82
|
+
* would reach a non-action export of an owned module.
|
|
83
|
+
*/
|
|
84
|
+
function createRouteServerManifest(manifest, validateActionReferences) {
|
|
85
|
+
return new Proxy(manifest, { get(target, id, receiver) {
|
|
86
|
+
if (typeof id === "string" && !validateActionReferences([id])) throw new Error(`Server reference "${id}" is not a Server Action of this route.`);
|
|
87
|
+
return Reflect.get(target, id, receiver);
|
|
88
|
+
} });
|
|
90
89
|
}
|
|
91
90
|
function prepareActionPageRerenderContext(options) {
|
|
92
91
|
if (options.dynamicConfig === "force-static" || options.dynamicConfig === "error") {
|
|
@@ -572,32 +571,26 @@ async function handleProgressiveServerActionRequest(options) {
|
|
|
572
571
|
let actionKey = null;
|
|
573
572
|
for (const key of body.keys()) if (key.startsWith("$ACTION_ID_") || key.startsWith("$ACTION_REF_")) actionKey = key;
|
|
574
573
|
let directActionId = null;
|
|
575
|
-
let referencedActionIds = [];
|
|
576
574
|
let invalidDirectActionReference = false;
|
|
577
|
-
if (actionKey?.startsWith("$ACTION_ID_"))
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
const referencePrefix = actionKey.slice(12);
|
|
582
|
-
const reference = parseBoundProgressiveActionReference(body, referencePrefix);
|
|
583
|
-
if (reference) {
|
|
584
|
-
directActionId = reference.actionId;
|
|
585
|
-
referencedActionIds = reference.referencedActionIds;
|
|
586
|
-
} else invalidDirectActionReference = true;
|
|
575
|
+
if (actionKey?.startsWith("$ACTION_ID_")) directActionId = actionKey.slice(11);
|
|
576
|
+
else if (actionKey?.startsWith("$ACTION_REF_")) {
|
|
577
|
+
directActionId = readBoundProgressiveActionId(body, actionKey.slice(12));
|
|
578
|
+
invalidDirectActionReference = directActionId === null;
|
|
587
579
|
}
|
|
588
580
|
if (invalidDirectActionReference) return createActionNotFoundResponse(null, {
|
|
589
581
|
clearRequestContext: options.clearRequestContext,
|
|
590
582
|
getAndClearPendingCookies: options.getAndClearPendingCookies
|
|
591
583
|
});
|
|
592
|
-
if (directActionId && options.forwardAction) {
|
|
584
|
+
if (directActionId !== null && options.forwardAction) {
|
|
593
585
|
const forwardResponse = await options.forwardAction(directActionId);
|
|
594
586
|
if (forwardResponse) return forwardResponse;
|
|
595
587
|
}
|
|
596
|
-
if (
|
|
588
|
+
if (directActionId !== null && !options.validateActionReferences([directActionId])) return createActionNotFoundResponse(directActionId, {
|
|
597
589
|
clearRequestContext: options.clearRequestContext,
|
|
598
590
|
getAndClearPendingCookies: options.getAndClearPendingCookies
|
|
599
591
|
});
|
|
600
|
-
const
|
|
592
|
+
const serverManifest = createRouteServerManifest(options.createServerManifest(), options.validateActionReferences);
|
|
593
|
+
const action = await loadOutsideRequestScopes(() => options.decodeAction(body, serverManifest));
|
|
601
594
|
if (!isAppServerActionFunction(action)) {
|
|
602
595
|
if (options.hasPageRoute) return createActionNotFoundResponse(null, {
|
|
603
596
|
clearRequestContext: options.clearRequestContext,
|
|
@@ -676,7 +669,7 @@ async function handleProgressiveServerActionRequest(options) {
|
|
|
676
669
|
};
|
|
677
670
|
return {
|
|
678
671
|
kind: "form-state",
|
|
679
|
-
formState: await loadOutsideRequestScopes(() => options.decodeFormState(actionResult, body)) ?? null,
|
|
672
|
+
formState: await loadOutsideRequestScopes(() => options.decodeFormState(actionResult, body, serverManifest)) ?? null,
|
|
680
673
|
pendingCookies: actionPendingCookies,
|
|
681
674
|
draftCookie: actionDraftCookie,
|
|
682
675
|
revalidationKind
|
|
@@ -821,8 +814,9 @@ async function handleServerActionRscRequest(options) {
|
|
|
821
814
|
});
|
|
822
815
|
action = loadedAction;
|
|
823
816
|
}
|
|
817
|
+
const serverManifest = createRouteServerManifest(options.createServerManifest(), options.validateActionReferences);
|
|
824
818
|
const temporaryReferences = options.createTemporaryReferenceSet();
|
|
825
|
-
const args = await loadOutsideRequestScopes(() => options.decodeReply(body, { temporaryReferences }));
|
|
819
|
+
const args = await loadOutsideRequestScopes(() => options.decodeReply(body, serverManifest, { temporaryReferences }));
|
|
826
820
|
let returnValue;
|
|
827
821
|
let actionRedirect = null;
|
|
828
822
|
let actionStatus = 200;
|
|
@@ -25,6 +25,12 @@ export declare function handleSsr(rscStream: ReadableStream<Uint8Array>, navCont
|
|
|
25
25
|
value: Promise<ArrayBuffer> | null;
|
|
26
26
|
};
|
|
27
27
|
pprFallbackShellSignal?: AbortSignal;
|
|
28
|
+
/**
|
|
29
|
+
* Pattern of the route this render shows, whose client references load
|
|
30
|
+
* before it starts, or null for a render without a route (a route-miss
|
|
31
|
+
* 404). Omitted, every client reference loads first.
|
|
32
|
+
*/
|
|
33
|
+
preloadRoutePattern?: string | null;
|
|
28
34
|
formState?: ReactFormState | null;
|
|
29
35
|
basePath?: string;
|
|
30
36
|
/**
|
|
@@ -64,6 +70,12 @@ export declare function handleSsr(rscStream: ReadableStream<Uint8Array>, navCont
|
|
|
64
70
|
*/
|
|
65
71
|
isCacheCandidate?: boolean;
|
|
66
72
|
fallbackToErrorDocumentOnShellError?: boolean;
|
|
73
|
+
/**
|
|
74
|
+
* The parallel slot not-found boundaries that catch the error that
|
|
75
|
+
* rejected the shell, or null when none catches it. The document then
|
|
76
|
+
* renders again from the same payload with them caught.
|
|
77
|
+
*/
|
|
78
|
+
resolveCaughtNotFoundBoundaries?: (error: unknown) => readonly string[] | null;
|
|
67
79
|
dynamicStaleTimeSeconds?: number;
|
|
68
80
|
getInitialNavigationCacheMetadata?: () => InitialNavigationCacheMetadata;
|
|
69
81
|
}): Promise<AppSsrRenderResult>;
|