vinext 1.3.0 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -2
- package/THIRD_PARTY_LICENSES.md +47 -0
- package/dist/_virtual/_rolldown/runtime.js +4 -3
- package/dist/build/action-owner-manifest.d.ts +3 -2
- package/dist/build/action-owner-manifest.js +18 -2
- package/dist/build/app-page-static-eligibility.d.ts +17 -1
- package/dist/build/app-page-static-eligibility.js +80 -13
- package/dist/build/clean-output.d.ts +2 -1
- package/dist/build/client-build-config.d.ts +13 -3
- package/dist/build/client-build-config.js +46 -9
- package/dist/build/client-reference-async.d.ts +48 -0
- package/dist/build/client-reference-async.js +123 -0
- package/dist/build/client-reference-chunks.d.ts +32 -0
- package/dist/build/client-reference-chunks.js +111 -0
- package/dist/build/client-reference-groups.d.ts +9 -1
- package/dist/build/client-reference-groups.js +40 -2
- package/dist/build/css-url-assets.d.ts +2 -1
- package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
- package/dist/build/google-fonts/font-metadata.d.ts +2 -1
- package/dist/build/google-fonts/validate.d.ts +2 -1
- package/dist/build/inline-css.d.ts +2 -1
- package/dist/build/module-dependency-cache.d.ts +2 -1
- package/dist/build/next-client-runtime-manifests.d.ts +2 -1
- package/dist/build/precompress.d.ts +2 -1
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-paths.d.ts +2 -1
- package/dist/build/prerender-phase.d.ts +2 -1
- package/dist/build/prerender-server-pool.js +1 -1
- package/dist/build/prerender.d.ts +3 -2
- package/dist/build/prerender.js +6 -5
- package/dist/build/report.d.ts +2 -15
- package/dist/build/report.js +1 -51
- package/dist/build/run-prerender.d.ts +2 -1
- package/dist/build/server-actions-encryption-key.d.ts +2 -1
- package/dist/build/ssr-manifest.js +25 -2
- package/dist/build/standalone.d.ts +2 -1
- package/dist/cache/cache-adapters-virtual.d.ts +2 -1
- package/dist/cache.js +1 -2
- package/dist/check.d.ts +2 -1
- package/dist/check.js +5 -1
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli.js +5 -0
- package/dist/client/client-redirect-matcher.js +2 -1
- package/dist/client/client-redirects.d.ts +4 -3
- package/dist/client/client-redirects.js +2 -1
- package/dist/client/client-rewrites.d.ts +2 -1
- package/dist/client/dev-error-overlay-store.d.ts +2 -1
- package/dist/client/dev-error-overlay.js +1 -1
- package/dist/client/index.js +1 -2
- package/dist/client/instrumentation-client-state.js +5 -5
- package/dist/client/navigation-runtime.d.ts +16 -2
- package/dist/client/navigation-runtime.js +2 -2
- package/dist/client/pages-router-link-navigation.d.ts +2 -1
- package/dist/client/vinext-next-data.d.ts +25 -1
- package/dist/client/window-next.d.ts +2 -1
- package/dist/config/config-matchers.d.ts +12 -1
- package/dist/config/config-matchers.js +111 -16
- package/dist/config/dotenv.d.ts +2 -1
- package/dist/config/next-config.d.ts +32 -1
- package/dist/config/next-config.js +93 -5
- package/dist/config/tsconfig-paths.d.ts +2 -1
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/dbcs-codec.js +327 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/dbcs-data.js +123 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/index.js +29 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/internal.js +134 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-codec.js +50 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-data-generated.js +455 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/sbcs-data.js +147 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/big5-added.json.js +169 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp936.json.js +2584 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp949.json.js +2220 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/cp950.json.js +227 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/eucjp.json.js +425 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/gb18030-ranges.json.js +427 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/gbk-added.json.js +229 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/tables/shiftjis.json.js +292 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/utf16.js +106 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/encodings/utf7.js +182 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/bom-handling.js +42 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/extend-node.js +147 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/index.js +94 -0
- package/dist/deps/.pnpm/iconv-lite@0.4.24/deps/iconv-lite/lib/streams.js +95 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
- package/dist/deps/.pnpm/safer-buffer@2.1.2/deps/safer-buffer/safer.js +45 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
- package/dist/entries/app-browser-entry.d.ts +20 -5
- package/dist/entries/app-browser-entry.js +79 -6
- package/dist/entries/app-rsc-entry.d.ts +2 -1
- package/dist/entries/app-rsc-entry.js +59 -60
- package/dist/entries/app-rsc-manifest.d.ts +2 -1
- package/dist/entries/app-rsc-manifest.js +56 -4
- package/dist/entries/app-ssr-entry.js +1 -0
- package/dist/entries/pages-entry-helpers.js +1 -2
- package/dist/entries/pages-server-entry.d.ts +2 -1
- package/dist/entries/pages-server-entry.js +34 -9
- package/dist/entries/runtime-entry-module.d.ts +1 -0
- package/dist/entries/runtime-entry-module.js +4 -1
- package/dist/image/image-adapters-virtual.d.ts +2 -1
- package/dist/index.js +184 -103
- package/dist/init-cloudflare.d.ts +1 -3
- package/dist/init-cloudflare.js +10 -48
- package/dist/init-platform.d.ts +2 -0
- package/dist/init-platform.js +4 -0
- package/dist/plugins/client-compile-hints.d.ts +30 -0
- package/dist/plugins/client-compile-hints.js +88 -0
- package/dist/plugins/client-reference-dedup.d.ts +2 -1
- package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
- package/dist/plugins/dynamic-preload-metadata.js +1 -1
- package/dist/plugins/environment.d.ts +2 -1
- package/dist/plugins/extensionless-dynamic-import.js +6 -2
- package/dist/plugins/fonts.js +9 -12
- package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
- package/dist/plugins/import-meta-url.d.ts +2 -1
- package/dist/plugins/next-intl-catalog.d.ts +12 -0
- package/dist/plugins/next-intl-catalog.js +85 -0
- package/dist/plugins/og-assets.d.ts +2 -1
- package/dist/plugins/og-assets.js +2 -3
- package/dist/plugins/optimize-imports.d.ts +2 -1
- package/dist/plugins/pages-node-externals.d.ts +3 -1
- package/dist/plugins/pages-node-externals.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -1
- package/dist/plugins/require-condition-resolution.d.ts +2 -1
- package/dist/plugins/rsc-client-reference-loaders.d.ts +8 -0
- package/dist/plugins/rsc-client-reference-loaders.js +170 -68
- package/dist/plugins/rsc-client-shim-excludes.js +2 -0
- package/dist/plugins/sass.d.ts +2 -1
- package/dist/plugins/strip-server-exports.d.ts +2 -1
- package/dist/plugins/styled-jsx.d.ts +2 -1
- package/dist/plugins/transform-result.d.ts +2 -1
- package/dist/plugins/typeof-window.d.ts +2 -1
- package/dist/plugins/use-cache-callable.d.ts +1 -1
- package/dist/plugins/use-cache-callable.js +136 -94
- package/dist/plugins/worker-image-imports.js +1 -1
- package/dist/plugins/worker-use-server.d.ts +2 -1
- package/dist/routing/app-route-graph.d.ts +46 -0
- package/dist/routing/app-route-graph.js +131 -51
- package/dist/routing/browser-route-manifest.d.ts +2 -1
- package/dist/routing/optimistic-route-trie.d.ts +2 -1
- package/dist/routing/route-matching.d.ts +2 -1
- package/dist/routing/route-pattern.d.ts +2 -1
- package/dist/server/accept-encoding.d.ts +2 -1
- package/dist/server/api-handler.js +19 -4
- package/dist/server/app-action-forwarding.d.ts +2 -1
- package/dist/server/app-bfcache-identity.d.ts +2 -1
- package/dist/server/app-bfcache-identity.js +1 -1
- package/dist/server/app-browser-action-result.d.ts +2 -1
- package/dist/server/app-browser-entry.js +106 -66
- package/dist/server/app-browser-error.d.ts +2 -1
- package/dist/server/app-browser-history-controller.d.ts +7 -5
- package/dist/server/app-browser-history-controller.js +93 -15
- package/dist/server/app-browser-hydration.d.ts +2 -1
- package/dist/server/app-browser-interception-context.d.ts +2 -1
- package/dist/server/app-browser-navigation-controller.d.ts +2 -2
- package/dist/server/app-browser-navigation-controller.js +16 -12
- package/dist/server/app-browser-popstate.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.js +4 -4
- package/dist/server/app-browser-server-action-client.d.ts +4 -1
- package/dist/server/app-browser-server-action-client.js +4 -3
- package/dist/server/app-browser-state.d.ts +2 -4
- package/dist/server/app-browser-state.js +9 -4
- package/dist/server/app-browser-stream.d.ts +2 -1
- package/dist/server/app-browser-supplemental-refresh.js +16 -1
- package/dist/server/app-browser-visible-commit.d.ts +3 -2
- package/dist/server/app-browser-visible-commit.js +2 -12
- package/dist/server/app-client-reference-manifest.d.ts +31 -0
- package/dist/server/app-client-reference-manifest.js +46 -0
- package/dist/server/app-client-reference-preloader.d.ts +25 -5
- package/dist/server/app-client-reference-preloader.js +22 -7
- package/dist/server/app-elements-wire.d.ts +8 -39
- package/dist/server/app-elements-wire.js +4 -41
- package/dist/server/app-elements.d.ts +4 -2
- package/dist/server/app-elements.js +4 -2
- package/dist/server/app-fallback-renderer.d.ts +9 -2
- package/dist/server/app-fallback-renderer.js +4 -1
- package/dist/server/app-history-state.d.ts +4 -3
- package/dist/server/app-history-state.js +5 -2
- package/dist/server/app-inline-css-client.d.ts +2 -1
- package/dist/server/app-metadata-tracing.d.ts +2 -1
- package/dist/server/app-mounted-layouts.d.ts +21 -0
- package/dist/server/app-mounted-layouts.js +67 -0
- package/dist/server/app-optimistic-routing.d.ts +37 -2
- package/dist/server/app-optimistic-routing.js +75 -2
- package/dist/server/app-page-boundary-render.d.ts +20 -2
- package/dist/server/app-page-boundary-render.js +224 -40
- package/dist/server/app-page-boundary.d.ts +34 -5
- package/dist/server/app-page-boundary.js +41 -8
- package/dist/server/app-page-cache-finalizer.d.ts +14 -2
- package/dist/server/app-page-cache-finalizer.js +71 -30
- package/dist/server/app-page-cache-render.d.ts +10 -2
- package/dist/server/app-page-cache-render.js +14 -2
- package/dist/server/app-page-cache.d.ts +13 -1
- package/dist/server/app-page-cache.js +33 -11
- package/dist/server/app-page-dispatch.d.ts +39 -11
- package/dist/server/app-page-dispatch.js +236 -177
- package/dist/server/app-page-element-builder.d.ts +19 -3
- package/dist/server/app-page-element-builder.js +193 -71
- package/dist/server/app-page-execution.d.ts +43 -51
- package/dist/server/app-page-execution.js +205 -92
- package/dist/server/app-page-head.d.ts +108 -3
- package/dist/server/app-page-head.js +337 -154
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +49 -2
- package/dist/server/app-page-http-access-fallback-metadata.js +77 -2
- package/dist/server/app-page-layout-gate.d.ts +35 -0
- package/dist/server/app-page-layout-gate.js +50 -0
- package/dist/server/app-page-method.d.ts +2 -1
- package/dist/server/app-page-params.d.ts +0 -1
- package/dist/server/app-page-params.js +1 -14
- package/dist/server/app-page-probe.d.ts +5 -22
- package/dist/server/app-page-probe.js +4 -37
- package/dist/server/app-page-render-identity.d.ts +2 -1
- package/dist/server/app-page-render.d.ts +9 -13
- package/dist/server/app-page-render.js +108 -214
- package/dist/server/app-page-request.d.ts +15 -4
- package/dist/server/app-page-request.js +2 -2
- package/dist/server/app-page-response.js +3 -3
- package/dist/server/app-page-route-wiring.d.ts +65 -8
- package/dist/server/app-page-route-wiring.js +259 -103
- package/dist/server/app-page-rsc-render-status.d.ts +29 -2
- package/dist/server/app-page-rsc-render-status.js +121 -13
- package/dist/server/app-page-search-params-observation.d.ts +7 -2
- package/dist/server/app-page-search-params-observation.js +8 -1
- package/dist/server/app-page-segment-plan.d.ts +2 -1
- package/dist/server/app-page-stream.d.ts +33 -1
- package/dist/server/app-page-stream.js +25 -6
- package/dist/server/app-pages-bridge.d.ts +6 -1
- package/dist/server/app-pages-bridge.js +7 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
- package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
- package/dist/server/app-prerender-endpoints.d.ts +2 -1
- package/dist/server/app-prerender-static-params.d.ts +2 -1
- package/dist/server/app-render-dependency.d.ts +21 -4
- package/dist/server/app-render-dependency.js +100 -33
- package/dist/server/app-request-stage-dispatch.js +1 -1
- package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
- package/dist/server/app-response-stage-entry.d.ts +2 -1
- package/dist/server/app-route-handler-cache.d.ts +2 -1
- package/dist/server/app-route-handler-cache.js +2 -2
- package/dist/server/app-route-handler-dispatch.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.js +15 -10
- package/dist/server/app-route-handler-execution.d.ts +2 -1
- package/dist/server/app-route-handler-execution.js +8 -3
- package/dist/server/app-route-handler-policy.d.ts +1 -1
- package/dist/server/app-route-handler-policy.js +3 -3
- package/dist/server/app-route-handler-response.d.ts +2 -1
- package/dist/server/app-route-handler-response.js +1 -1
- package/dist/server/app-route-handler-runtime.d.ts +2 -1
- package/dist/server/app-route-handler-runtime.js +17 -4
- package/dist/server/app-route-module-loader.d.ts +18 -1
- package/dist/server/app-route-module-loader.js +8 -0
- package/dist/server/app-route-tree-prefetch.d.ts +2 -1
- package/dist/server/app-rsc-cache-busting.d.ts +2 -2
- package/dist/server/app-rsc-cache-busting.js +4 -4
- package/dist/server/app-rsc-error-handler.d.ts +4 -2
- package/dist/server/app-rsc-error-handler.js +9 -1
- package/dist/server/app-rsc-errors.d.ts +10 -1
- package/dist/server/app-rsc-errors.js +8 -1
- package/dist/server/app-rsc-handler.d.ts +7 -6
- package/dist/server/app-rsc-handler.js +36 -34
- package/dist/server/app-rsc-request-normalization.d.ts +0 -4
- package/dist/server/app-rsc-request-normalization.js +1 -4
- package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
- package/dist/server/app-rsc-response-finalizer.js +2 -2
- package/dist/server/app-rsc-response-stage.js +5 -3
- package/dist/server/app-rsc-route-matching.d.ts +38 -1
- package/dist/server/app-rsc-route-matching.js +24 -0
- package/dist/server/app-segment-config.d.ts +2 -1
- package/dist/server/app-segment-config.js +1 -14
- package/dist/server/app-server-action-execution.d.ts +5 -2
- package/dist/server/app-server-action-execution.js +10 -7
- package/dist/server/app-ssr-entry.d.ts +8 -0
- package/dist/server/app-ssr-entry.js +98 -50
- package/dist/server/app-ssr-error-meta.d.ts +2 -1
- package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
- package/dist/server/app-ssr-stream.d.ts +22 -10
- package/dist/server/app-ssr-stream.js +300 -68
- package/dist/server/app-static-generation.d.ts +2 -1
- package/dist/server/app-streamed-client-references.d.ts +39 -0
- package/dist/server/app-streamed-client-references.js +156 -0
- package/dist/server/app-visited-response-cache.d.ts +38 -2
- package/dist/server/app-visited-response-cache.js +46 -5
- package/dist/server/app-worker-stages.d.ts +27 -4
- package/dist/server/app-worker-stages.js +45 -6
- package/dist/server/artifact-compatibility.d.ts +2 -2
- package/dist/server/artifact-compatibility.js +1 -10
- package/dist/server/bfcache-identity.d.ts +2 -1
- package/dist/server/cache-headers.d.ts +2 -1
- package/dist/server/cache-proof.d.ts +1 -115
- package/dist/server/cache-proof.js +1 -544
- package/dist/server/cacheability-request.d.ts +2 -1
- package/dist/server/cacheability-request.js +13 -8
- package/dist/server/config-headers.d.ts +2 -1
- package/dist/server/csp.d.ts +2 -1
- package/dist/server/default-global-not-found-module.d.ts +2 -1
- package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
- package/dist/server/default-http-access-fallback-modules.js +31 -0
- package/dist/server/defer-until-stream-consumed.d.ts +34 -0
- package/dist/server/defer-until-stream-consumed.js +154 -21
- package/dist/server/dev-lockfile.d.ts +32 -2
- package/dist/server/dev-lockfile.js +46 -2
- package/dist/server/dev-module-runner.d.ts +2 -1
- package/dist/server/dev-server.js +14 -6
- package/dist/server/fetch-handler.js +1 -2
- package/dist/server/file-based-metadata.d.ts +2 -1
- package/dist/server/framework-tracer.d.ts +2 -1
- package/dist/server/headers.d.ts +6 -3
- package/dist/server/headers.js +9 -5
- package/dist/server/html.d.ts +1 -0
- package/dist/server/html.js +19 -1
- package/dist/server/http-conditional.d.ts +2 -1
- package/dist/server/http-error-responses.d.ts +2 -1
- package/dist/server/implicit-tags.d.ts +2 -1
- package/dist/server/isr-cache.d.ts +8 -2
- package/dist/server/isr-cache.js +26 -1
- package/dist/server/metadata-route-build-data.d.ts +2 -1
- package/dist/server/metadata-route-build-data.js +1 -1
- package/dist/server/metadata-route-response.d.ts +2 -1
- package/dist/server/metadata-route-response.js +32 -15
- package/dist/server/metadata-routes.d.ts +2 -1
- package/dist/server/middleware-runtime.d.ts +2 -1
- package/dist/server/multi-stage.d.ts +52 -11
- package/dist/server/multi-stage.js +13 -1
- package/dist/server/navigation-planner.js +1 -1
- package/dist/server/navigation-trace.d.ts +2 -1
- package/dist/server/next-error-digest.d.ts +2 -1
- package/dist/server/nitro-public-files-plugin.d.ts +2 -1
- package/dist/server/nitro-public-files.d.ts +2 -1
- package/dist/server/opentelemetry-api.d.ts +2 -1
- package/dist/server/operation-token.d.ts +2 -1
- package/dist/server/pages-api-route.d.ts +2 -1
- package/dist/server/pages-api-route.js +28 -19
- package/dist/server/pages-asset-tags.d.ts +2 -1
- package/dist/server/pages-body-parser-config.d.ts +2 -1
- package/dist/server/pages-client-assets.d.ts +4 -0
- package/dist/server/pages-data-route.d.ts +2 -1
- package/dist/server/pages-document-asset-props.d.ts +2 -1
- package/dist/server/pages-document-initial-props.d.ts +2 -1
- package/dist/server/pages-execution-tracing.d.ts +2 -1
- package/dist/server/pages-execution-tracing.js +1 -1
- package/dist/server/pages-get-initial-props.d.ts +2 -1
- package/dist/server/pages-media-type.d.ts +21 -1
- package/dist/server/pages-media-type.js +69 -5
- package/dist/server/pages-node-compat.js +52 -27
- package/dist/server/pages-page-data.d.ts +7 -1
- package/dist/server/pages-page-data.js +35 -12
- package/dist/server/pages-page-handler.d.ts +3 -2
- package/dist/server/pages-page-handler.js +27 -27
- package/dist/server/pages-page-method.d.ts +2 -1
- package/dist/server/pages-page-response.d.ts +2 -1
- package/dist/server/pages-preview.d.ts +2 -1
- package/dist/server/pages-readiness.d.ts +2 -1
- package/dist/server/pages-request-pipeline.d.ts +10 -1
- package/dist/server/pages-request-pipeline.js +6 -7
- package/dist/server/pages-request-stage-entry.d.ts +2 -1
- package/dist/server/pages-request-stage-entry.js +14 -12
- package/dist/server/pages-response-stage-entry.d.ts +2 -1
- package/dist/server/pages-response-stage-entry.js +9 -3
- package/dist/server/pages-route-data-kind.d.ts +2 -1
- package/dist/server/prerender-cache-life-header.d.ts +2 -1
- package/dist/server/prerender-route-params.d.ts +2 -1
- package/dist/server/prod-server.js +14 -4
- package/dist/server/request-log.d.ts +2 -1
- package/dist/server/request-pipeline.d.ts +6 -0
- package/dist/server/request-pipeline.js +21 -1
- package/dist/server/request-tracing.d.ts +2 -1
- package/dist/server/request-tracing.js +1 -1
- package/dist/server/response-start-tracing.js +7 -29
- package/dist/server/rsc-render-stream.d.ts +4 -0
- package/dist/server/rsc-render-stream.js +25 -0
- package/dist/server/seed-cache.d.ts +2 -1
- package/dist/server/seed-cache.js +1 -1
- package/dist/server/shared-cache-identity.d.ts +23 -0
- package/dist/server/shared-cache-identity.js +36 -0
- package/dist/server/static-file-cache.d.ts +2 -1
- package/dist/server/static-file-cache.js +1 -0
- package/dist/server/worker-revalidation-context.d.ts +2 -1
- package/dist/server/worker-stages.d.ts +18 -4
- package/dist/server/worker-stages.js +23 -4
- package/dist/shims/app.d.ts +2 -1
- package/dist/shims/cache-callable-runtime.d.ts +2 -1
- package/dist/shims/cache-handler.d.ts +8 -3
- package/dist/shims/cache-handler.js +31 -11
- package/dist/shims/cache-request-state.d.ts +17 -20
- package/dist/shims/cache-request-state.js +16 -21
- package/dist/shims/cache-runtime.js +27 -11
- package/dist/shims/cache.d.ts +8 -7
- package/dist/shims/cache.js +17 -19
- package/dist/shims/cacheability-classification.d.ts +2 -0
- package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
- package/dist/shims/caught-not-found-boundaries.js +48 -0
- package/dist/shims/cdn-cache.d.ts +22 -5
- package/dist/shims/cdn-purge-routes.d.ts +2 -1
- package/dist/shims/client-locale.js +2 -1
- package/dist/shims/client-page-root.d.ts +2 -1
- package/dist/shims/client-page-root.js +2 -2
- package/dist/shims/config.d.ts +2 -1
- package/dist/shims/default-forbidden.d.ts +4 -0
- package/dist/shims/default-forbidden.js +18 -0
- package/dist/shims/default-not-found.d.ts +0 -5
- package/dist/shims/default-not-found.js +5 -41
- package/dist/shims/default-unauthorized.d.ts +4 -0
- package/dist/shims/default-unauthorized.js +18 -0
- package/dist/shims/dynamic.js +9 -6
- package/dist/shims/error-boundary.d.ts +39 -3
- package/dist/shims/error-boundary.js +33 -18
- package/dist/shims/fetch-cache-state.d.ts +5 -1
- package/dist/shims/fetch-cache-state.js +1 -3
- package/dist/shims/fetch-cache.d.ts +2 -1
- package/dist/shims/fetch-cache.js +34 -24
- package/dist/shims/font-google.js +1 -2
- package/dist/shims/font-utils.d.ts +3 -2
- package/dist/shims/font-utils.js +5 -3
- package/dist/shims/form.js +3 -3
- package/dist/shims/headers.d.ts +8 -23
- package/dist/shims/headers.js +17 -67
- package/dist/shims/http-access-error-fallback.d.ts +7 -0
- package/dist/shims/http-access-error-fallback.js +47 -0
- package/dist/shims/image.d.ts +1 -22
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
- package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
- package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
- package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
- package/dist/shims/internal/client-reference-loader.d.ts +7 -0
- package/dist/shims/internal/client-reference-loader.js +91 -0
- package/dist/shims/internal/cookie-serialize.d.ts +2 -1
- package/dist/shims/internal/cookies.js +1 -2
- package/dist/shims/internal/headers-state.d.ts +2 -0
- package/dist/shims/internal/headers-state.js +6 -1
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +2 -1
- package/dist/shims/internal/interpolate-as.d.ts +2 -1
- package/dist/shims/internal/navigation-untracked.js +1 -1
- package/dist/shims/internal/pages-data-target.d.ts +2 -1
- package/dist/shims/internal/pages-data-url.d.ts +2 -1
- package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
- package/dist/shims/link.js +197 -52
- package/dist/shims/metadata.d.ts +52 -29
- package/dist/shims/metadata.js +142 -42
- package/dist/shims/navigation-errors.d.ts +2 -1
- package/dist/shims/navigation-server.js +1 -1
- package/dist/shims/navigation.d.ts +95 -8
- package/dist/shims/navigation.js +255 -47
- package/dist/shims/navigation.react-server.js +2 -2
- package/dist/shims/pages-router-runtime.d.ts +2 -1
- package/dist/shims/ppr-fallback-shell.d.ts +2 -1
- package/dist/shims/request-state-types.d.ts +2 -2
- package/dist/shims/router.js +14 -3
- package/dist/shims/slot.d.ts +12 -0
- package/dist/shims/slot.js +37 -9
- package/dist/shims/unified-request-context.d.ts +1 -1
- package/dist/shims/unified-request-context.js +5 -6
- package/dist/typegen.d.ts +2 -1
- package/dist/utils/cache-control-metadata.d.ts +5 -0
- package/dist/utils/cache-control-metadata.js +9 -1
- package/dist/utils/client-build-manifest.d.ts +4 -1
- package/dist/utils/client-build-manifest.js +9 -2
- package/dist/utils/client-entry-manifest.d.ts +13 -0
- package/dist/utils/client-entry-manifest.js +20 -1
- package/dist/utils/client-reference-chunks.d.ts +45 -0
- package/dist/utils/client-reference-chunks.js +30 -0
- package/dist/utils/client-runtime-metadata.d.ts +9 -1
- package/dist/utils/client-runtime-metadata.js +40 -9
- package/dist/utils/compare.d.ts +9 -0
- package/dist/utils/compare.js +15 -1
- package/dist/utils/lazy-chunks.d.ts +14 -0
- package/dist/utils/lazy-chunks.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +2 -1
- package/dist/utils/project.d.ts +4 -3
- package/dist/utils/project.js +12 -17
- package/dist/utils/query.d.ts +2 -1
- package/dist/utils/regex.d.ts +5 -0
- package/dist/utils/regex.js +11 -1
- package/dist/utils/text-stream.d.ts +10 -5
- package/dist/utils/text-stream.js +6 -6
- package/dist/utils/vite-cli-invocation.d.ts +2 -1
- package/package.json +6 -5
- package/dist/build/layout-classification-types.d.ts +0 -60
- package/dist/build/layout-classification-types.js +0 -1
- package/dist/build/layout-classification.d.ts +0 -61
- package/dist/build/layout-classification.js +0 -98
- package/dist/build/route-classification-injector.d.ts +0 -32
- package/dist/build/route-classification-injector.js +0 -59
- package/dist/build/route-classification-manifest.d.ts +0 -53
- package/dist/build/route-classification-manifest.js +0 -143
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
- package/dist/server/app-browser-client-reuse-manifest.d.ts +0 -10
- package/dist/server/app-browser-client-reuse-manifest.js +0 -101
- package/dist/server/app-layout-param-observation.d.ts +0 -41
- package/dist/server/app-layout-param-observation.js +0 -168
- package/dist/server/client-reuse-manifest.d.ts +0 -102
- package/dist/server/client-reuse-manifest.js +0 -209
- package/dist/server/default-not-found-module.d.ts +0 -19
- package/dist/server/default-not-found-module.js +0 -18
- package/dist/server/rsc-stream-hints.d.ts +0 -21
- package/dist/server/rsc-stream-hints.js +0 -227
- package/dist/server/skip-cache-proof.d.ts +0 -60
- package/dist/server/skip-cache-proof.js +0 -168
- package/dist/server/static-layout-client-reuse-proof.d.ts +0 -13
- package/dist/server/static-layout-client-reuse-proof.js +0 -33
- package/dist/utils/sorted-array.d.ts +0 -7
- package/dist/utils/sorted-array.js +0 -20
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { MetadataFileRoute } from "./metadata-routes.js";
|
|
2
2
|
import { AppPageParams } from "./app-page-boundary.js";
|
|
3
|
-
import { Metadata, ResolvedViewport } from "../shims/metadata.js";
|
|
3
|
+
import { Metadata, ResolvedViewport, Viewport } from "../shims/metadata.js";
|
|
4
4
|
import { ActiveParallelRouteHeadInput, AppPageHeadModule, ApplyAppPageFileBasedMetadata, OrderedAppPageMetadataSource } from "./app-page-head.js";
|
|
5
5
|
//#region src/server/app-page-http-access-fallback-metadata.d.ts
|
|
6
6
|
type HttpAccessFallbackMetadataPlanOptions<TModule extends AppPageHeadModule = AppPageHeadModule> = {
|
|
@@ -26,5 +26,52 @@ type ResolveHttpAccessFallbackMetadataOptions<TModule extends AppPageHeadModule
|
|
|
26
26
|
};
|
|
27
27
|
export declare function createHttpAccessFallbackMetadataPlan<TModule extends AppPageHeadModule>(options: HttpAccessFallbackMetadataPlanOptions<TModule>): OrderedAppPageMetadataSource<TModule>[];
|
|
28
28
|
export declare function resolveHttpAccessFallbackMetadata<TModule extends AppPageHeadModule>(options: ResolveHttpAccessFallbackMetadataOptions<TModule>): Promise<Metadata | null>;
|
|
29
|
+
type RouteNotFoundHeadPlanRoute<TModule extends AppPageHeadModule> = {
|
|
30
|
+
layouts?: readonly (TModule | null | undefined)[];
|
|
31
|
+
layoutTreePositions?: readonly number[] | null;
|
|
32
|
+
notFound?: TModule | null;
|
|
33
|
+
notFounds?: readonly (TModule | null | undefined)[] | null;
|
|
34
|
+
notFoundTreePosition?: number | null;
|
|
35
|
+
routeSegments?: readonly string[] | null;
|
|
36
|
+
segmentNotFoundTreePositions?: readonly number[] | null;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* The not-found head a route's own head falls back to. Like Next.js's
|
|
40
|
+
* metadata tree, every HTTP access signal from generateMetadata() or
|
|
41
|
+
* generateViewport() resolves through the not-found convention, whichever
|
|
42
|
+
* signal the route's render threw.
|
|
43
|
+
*/
|
|
44
|
+
export declare function createRouteNotFoundHeadPlanOptions<TModule extends AppPageHeadModule>(options: {
|
|
45
|
+
parallelBranches: readonly ActiveParallelRouteHeadInput<TModule>[];
|
|
46
|
+
params: AppPageParams;
|
|
47
|
+
primaryParallelBranch: ActiveParallelRouteHeadInput<TModule> | null;
|
|
48
|
+
rootNotFoundModule?: TModule | null;
|
|
49
|
+
route: RouteNotFoundHeadPlanRoute<TModule>;
|
|
50
|
+
}): HttpAccessFallbackMetadataPlanOptions<TModule>;
|
|
51
|
+
/**
|
|
52
|
+
* Settle each branch of a route's head on its own, as Next.js's MetadataTree
|
|
53
|
+
* and ViewportTree do: an HTTP access signal from generateMetadata() keeps the
|
|
54
|
+
* resolved viewport and resolves the metadata through the not-found
|
|
55
|
+
* convention, and the same holds the other way round. Any other error leaves
|
|
56
|
+
* that branch empty; the route's render reports it where it renders.
|
|
57
|
+
*
|
|
58
|
+
* A `dynamic = "error"` access error leaves its branch empty too, but
|
|
59
|
+
* `accessError` keeps it, whether the route's head or the not-found head it
|
|
60
|
+
* recovers through threw it: Next.js fails such a render even where its
|
|
61
|
+
* metadata trees drop the error, so a fallback without the route's outlet
|
|
62
|
+
* rethrows it.
|
|
63
|
+
*/
|
|
64
|
+
export declare function recoverAppPageRouteHead<TModule extends AppPageHeadModule>(head: {
|
|
65
|
+
metadata: Promise<Metadata | null>;
|
|
66
|
+
viewport: Promise<ResolvedViewport>;
|
|
67
|
+
}, options: Omit<ResolveHttpAccessFallbackMetadataOptions<TModule>, keyof HttpAccessFallbackMetadataPlanOptions<TModule>> & {
|
|
68
|
+
resolvePlanOptions: () => HttpAccessFallbackMetadataPlanOptions<TModule>;
|
|
69
|
+
}): {
|
|
70
|
+
accessError: Promise<Error | null>;
|
|
71
|
+
metadata: Promise<Metadata | null>;
|
|
72
|
+
/** `null` when the branch failed: like Next.js's, the head then has no viewport tags. */
|
|
73
|
+
viewport: Promise<Viewport | null>;
|
|
74
|
+
};
|
|
29
75
|
export declare function resolveHttpAccessFallbackViewport<TModule extends AppPageHeadModule>(options: HttpAccessFallbackMetadataPlanOptions<TModule>): Promise<ResolvedViewport>;
|
|
30
|
-
//#endregion
|
|
76
|
+
//#endregion
|
|
77
|
+
export {};
|
|
@@ -1,7 +1,10 @@
|
|
|
1
|
+
import { isStaticGenerationAccessError } from "../shims/internal/headers-state.js";
|
|
1
2
|
import { mergeViewport, resolveModuleViewport } from "../shims/metadata.js";
|
|
2
|
-
import {
|
|
3
|
+
import { resolveAppPageSpecialError } from "./app-page-execution.js";
|
|
3
4
|
import { createAppMetadataModuleRoute } from "./app-metadata-tracing.js";
|
|
5
|
+
import { resolveAppPageBranchParams, resolveAppPageSegmentParams } from "./app-page-params.js";
|
|
4
6
|
import { resolveOrderedAppPageMetadata } from "./app-page-head.js";
|
|
7
|
+
import { resolveAppPageParentHttpAccessBoundary } from "./app-page-boundary.js";
|
|
5
8
|
//#region src/server/app-page-http-access-fallback-metadata.ts
|
|
6
9
|
function isPresent(value) {
|
|
7
10
|
return value !== null && value !== void 0;
|
|
@@ -106,6 +109,78 @@ function resolveHttpAccessFallbackMetadata(options) {
|
|
|
106
109
|
sources: createHttpAccessFallbackMetadataPlan(options)
|
|
107
110
|
});
|
|
108
111
|
}
|
|
112
|
+
/**
|
|
113
|
+
* The not-found head a route's own head falls back to. Like Next.js's
|
|
114
|
+
* metadata tree, every HTTP access signal from generateMetadata() or
|
|
115
|
+
* generateViewport() resolves through the not-found convention, whichever
|
|
116
|
+
* signal the route's render threw.
|
|
117
|
+
*/
|
|
118
|
+
function createRouteNotFoundHeadPlanOptions(options) {
|
|
119
|
+
const { route } = options;
|
|
120
|
+
const routeSegments = route.routeSegments ?? [];
|
|
121
|
+
const layoutModules = route.layouts ?? [];
|
|
122
|
+
let boundaryModule = route.notFound ?? null;
|
|
123
|
+
let boundaryTreePosition = boundaryModule ? route.notFoundTreePosition : null;
|
|
124
|
+
if (!boundaryModule) {
|
|
125
|
+
const parentBoundary = resolveAppPageParentHttpAccessBoundary({
|
|
126
|
+
layoutIndex: layoutModules.length,
|
|
127
|
+
rootNotFoundModule: route.segmentNotFoundTreePositions ? null : options.rootNotFoundModule,
|
|
128
|
+
routeNotFoundModules: route.notFounds,
|
|
129
|
+
statusCode: 404
|
|
130
|
+
});
|
|
131
|
+
boundaryModule = parentBoundary.module;
|
|
132
|
+
boundaryTreePosition = parentBoundary.layoutIndex === null ? null : route.layoutTreePositions?.[parentBoundary.layoutIndex];
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
boundaryModule,
|
|
136
|
+
boundaryParams: boundaryModule && boundaryTreePosition != null ? resolveAppPageSegmentParams(routeSegments, boundaryTreePosition, options.params) : {},
|
|
137
|
+
boundaryRouteSegments: routeSegments.slice(0, boundaryTreePosition ?? 0),
|
|
138
|
+
errorConvention: "not-found",
|
|
139
|
+
layoutModules,
|
|
140
|
+
layoutTreePositions: route.layoutTreePositions,
|
|
141
|
+
parallelBranches: options.parallelBranches,
|
|
142
|
+
params: options.params,
|
|
143
|
+
primaryParallelBranch: options.primaryParallelBranch,
|
|
144
|
+
routeSegments: route.routeSegments ?? null
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Settle each branch of a route's head on its own, as Next.js's MetadataTree
|
|
149
|
+
* and ViewportTree do: an HTTP access signal from generateMetadata() keeps the
|
|
150
|
+
* resolved viewport and resolves the metadata through the not-found
|
|
151
|
+
* convention, and the same holds the other way round. Any other error leaves
|
|
152
|
+
* that branch empty; the route's render reports it where it renders.
|
|
153
|
+
*
|
|
154
|
+
* A `dynamic = "error"` access error leaves its branch empty too, but
|
|
155
|
+
* `accessError` keeps it, whether the route's head or the not-found head it
|
|
156
|
+
* recovers through threw it: Next.js fails such a render even where its
|
|
157
|
+
* metadata trees drop the error, so a fallback without the route's outlet
|
|
158
|
+
* rethrows it.
|
|
159
|
+
*/
|
|
160
|
+
function recoverAppPageRouteHead(head, options) {
|
|
161
|
+
const { resolvePlanOptions, ...metadataOptions } = options;
|
|
162
|
+
const settleEmpty = (error, empty) => ({
|
|
163
|
+
accessError: isStaticGenerationAccessError(error) ? error : null,
|
|
164
|
+
value: empty
|
|
165
|
+
});
|
|
166
|
+
const recover = (branch, recoverBranch, empty) => branch.then((value) => ({
|
|
167
|
+
accessError: null,
|
|
168
|
+
value
|
|
169
|
+
}), (error) => resolveAppPageSpecialError(error)?.kind === "http-access-fallback" ? recoverBranch().then((value) => ({
|
|
170
|
+
accessError: null,
|
|
171
|
+
value
|
|
172
|
+
}), (recoveryError) => settleEmpty(recoveryError, empty)) : settleEmpty(error, empty));
|
|
173
|
+
const metadata = recover(head.metadata, () => resolveHttpAccessFallbackMetadata({
|
|
174
|
+
...metadataOptions,
|
|
175
|
+
...resolvePlanOptions()
|
|
176
|
+
}), null);
|
|
177
|
+
const viewport = recover(head.viewport, () => resolveHttpAccessFallbackViewport(resolvePlanOptions()), null);
|
|
178
|
+
return {
|
|
179
|
+
accessError: Promise.all([metadata, viewport]).then(([metadataResult, viewportResult]) => metadataResult.accessError ?? viewportResult.accessError),
|
|
180
|
+
metadata: metadata.then((result) => result.value),
|
|
181
|
+
viewport: viewport.then((result) => result.value)
|
|
182
|
+
};
|
|
183
|
+
}
|
|
109
184
|
async function resolveHttpAccessFallbackViewport(options) {
|
|
110
185
|
let accumulatedViewport = Promise.resolve(mergeViewport([]));
|
|
111
186
|
for (const source of createHttpAccessFallbackPlan(options, "snapshot")) {
|
|
@@ -118,4 +193,4 @@ async function resolveHttpAccessFallbackViewport(options) {
|
|
|
118
193
|
return accumulatedViewport;
|
|
119
194
|
}
|
|
120
195
|
//#endregion
|
|
121
|
-
export { createHttpAccessFallbackMetadataPlan, resolveHttpAccessFallbackMetadata, resolveHttpAccessFallbackViewport };
|
|
196
|
+
export { createHttpAccessFallbackMetadataPlan, createRouteNotFoundHeadPlanOptions, recoverAppPageRouteHead, resolveHttpAccessFallbackMetadata, resolveHttpAccessFallbackViewport };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
//#region src/server/app-page-layout-gate.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Holds an RSC response until the layouts above the route's first loading
|
|
4
|
+
* boundary have rendered, so that a layout's redirect(), notFound(),
|
|
5
|
+
* forbidden() or unauthorized() still answers the request: a redirect through
|
|
6
|
+
* the `X-Vinext-Rsc-Redirect` side channel, and the others with their
|
|
7
|
+
* boundary's status. The layouts render once, in the render itself. A
|
|
8
|
+
* signal from a component a layout renders streams in the payload, as in
|
|
9
|
+
* Next.js.
|
|
10
|
+
*/
|
|
11
|
+
export type AppPageLayoutGate = {
|
|
12
|
+
/** Holds the response until the layout with `layoutId` has rendered. */
|
|
13
|
+
hold(layoutId: string, layoutIndex: number): void;
|
|
14
|
+
/** Reports how the layout with `layoutId` rendered. */
|
|
15
|
+
settle(layoutId: string, failure?: {
|
|
16
|
+
error: unknown;
|
|
17
|
+
}): void;
|
|
18
|
+
/**
|
|
19
|
+
* The outermost held layout that threw, once every held layout `isRendered`
|
|
20
|
+
* includes has rendered, or null. An error elsewhere in the render doesn't
|
|
21
|
+
* stop the wait, as Flight goes on to render the other entries, but the
|
|
22
|
+
* render ending does: `ended` settles when its stream closes or errors.
|
|
23
|
+
*/
|
|
24
|
+
wait(isRendered: (layoutId: string) => boolean, ended: Promise<unknown>): Promise<AppPageLayoutGateFailure | null>;
|
|
25
|
+
};
|
|
26
|
+
type AppPageLayoutGateFailure = {
|
|
27
|
+
error: unknown;
|
|
28
|
+
layoutIndex: number;
|
|
29
|
+
};
|
|
30
|
+
export declare function createAppPageLayoutGate(): AppPageLayoutGate;
|
|
31
|
+
export declare function registerAppPageLayoutGate(elements: object, gate: AppPageLayoutGate): void;
|
|
32
|
+
/** The gate of the layouts in `element`, an App Router elements record. */
|
|
33
|
+
export declare function getAppPageLayoutGate(element: unknown): AppPageLayoutGate | null;
|
|
34
|
+
//#endregion
|
|
35
|
+
export {};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
//#region src/server/app-page-layout-gate.ts
|
|
2
|
+
function createAppPageLayoutGate() {
|
|
3
|
+
const held = /* @__PURE__ */ new Map();
|
|
4
|
+
const settled = /* @__PURE__ */ new Set();
|
|
5
|
+
let failure = null;
|
|
6
|
+
let ended = false;
|
|
7
|
+
let check = null;
|
|
8
|
+
return {
|
|
9
|
+
hold(layoutId, layoutIndex) {
|
|
10
|
+
held.set(layoutId, layoutIndex);
|
|
11
|
+
},
|
|
12
|
+
settle(layoutId, layoutFailure) {
|
|
13
|
+
const layoutIndex = held.get(layoutId);
|
|
14
|
+
if (layoutIndex === void 0 || settled.has(layoutId)) return;
|
|
15
|
+
settled.add(layoutId);
|
|
16
|
+
if (layoutFailure) {
|
|
17
|
+
if (failure === null || layoutIndex < failure.layoutIndex) failure = {
|
|
18
|
+
error: layoutFailure.error,
|
|
19
|
+
layoutIndex
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
check?.();
|
|
23
|
+
},
|
|
24
|
+
wait(isRendered, renderEnded) {
|
|
25
|
+
return new Promise((resolve) => {
|
|
26
|
+
check = () => {
|
|
27
|
+
for (const layoutId of held.keys()) if (!ended && !settled.has(layoutId) && isRendered(layoutId)) return;
|
|
28
|
+
check = null;
|
|
29
|
+
resolve(failure);
|
|
30
|
+
};
|
|
31
|
+
const end = () => {
|
|
32
|
+
ended = true;
|
|
33
|
+
check?.();
|
|
34
|
+
};
|
|
35
|
+
renderEnded.then(end, end);
|
|
36
|
+
check();
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
const appPageLayoutGates = /* @__PURE__ */ new WeakMap();
|
|
42
|
+
function registerAppPageLayoutGate(elements, gate) {
|
|
43
|
+
appPageLayoutGates.set(elements, gate);
|
|
44
|
+
}
|
|
45
|
+
/** The gate of the layouts in `element`, an App Router elements record. */
|
|
46
|
+
function getAppPageLayoutGate(element) {
|
|
47
|
+
return typeof element === "object" && element !== null ? appPageLayoutGates.get(element) ?? null : null;
|
|
48
|
+
}
|
|
49
|
+
//#endregion
|
|
50
|
+
export { createAppPageLayoutGate, getAppPageLayoutGate, registerAppPageLayoutGate };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { AppPageParams } from "./app-page-boundary.js";
|
|
2
2
|
//#region src/server/app-page-params.d.ts
|
|
3
3
|
export declare function getAppPageSegmentParamName(segment: string): string | null;
|
|
4
|
-
export declare function resolveAppPageSegmentParamScopeKeys(routeSegments: readonly string[] | null | undefined, treePosition: number): readonly string[];
|
|
5
4
|
export declare function resolveAppPageSegmentParams(routeSegments: readonly string[] | null | undefined, treePosition: number, matchedParams: AppPageParams): AppPageParams;
|
|
6
5
|
export declare function resolveAppPageBranchParams(branchSegments: readonly string[], treePosition: number, matchedParams: AppPageParams, scopedSegments?: readonly string[]): AppPageParams;
|
|
7
6
|
//#endregion
|
|
@@ -8,19 +8,6 @@ function getAppPageSegmentParamName(segment) {
|
|
|
8
8
|
function isEmptyOptionalCatchAll(segment, paramValue) {
|
|
9
9
|
return segment.startsWith("[[...") && Array.isArray(paramValue) && paramValue.length === 0;
|
|
10
10
|
}
|
|
11
|
-
function resolveAppPageSegmentParamScopeKeys(routeSegments, treePosition) {
|
|
12
|
-
const paramNames = [];
|
|
13
|
-
const seen = /* @__PURE__ */ new Set();
|
|
14
|
-
const segments = routeSegments ?? [];
|
|
15
|
-
const end = Math.min(Math.max(treePosition, 0), segments.length);
|
|
16
|
-
for (let index = 0; index < end; index++) {
|
|
17
|
-
const paramName = getAppPageSegmentParamName(segments[index]);
|
|
18
|
-
if (!paramName || seen.has(paramName)) continue;
|
|
19
|
-
seen.add(paramName);
|
|
20
|
-
paramNames.push(paramName);
|
|
21
|
-
}
|
|
22
|
-
return paramNames;
|
|
23
|
-
}
|
|
24
11
|
function resolveAppPageSegmentParams(routeSegments, treePosition, matchedParams) {
|
|
25
12
|
const segmentParams = {};
|
|
26
13
|
const segments = routeSegments ?? [];
|
|
@@ -43,4 +30,4 @@ function resolveAppPageBranchParams(branchSegments, treePosition, matchedParams,
|
|
|
43
30
|
return scopedParams;
|
|
44
31
|
}
|
|
45
32
|
//#endregion
|
|
46
|
-
export { getAppPageSegmentParamName, resolveAppPageBranchParams,
|
|
33
|
+
export { getAppPageSegmentParamName, resolveAppPageBranchParams, resolveAppPageSegmentParams };
|
|
@@ -1,30 +1,13 @@
|
|
|
1
|
-
import { LayoutFlags } from "./app-elements-wire.js";
|
|
2
|
-
import { AppPageSpecialError, LayoutClassificationOptions } from "./app-page-execution.js";
|
|
3
1
|
//#region src/server/app-page-probe.d.ts
|
|
4
2
|
type ProbeReactServerSubtreeOptions = Readonly<{
|
|
5
3
|
maxDepth?: number;
|
|
6
4
|
maxNodes?: number;
|
|
7
5
|
}>;
|
|
8
6
|
/**
|
|
9
|
-
* Invokes server
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
* failures only make static-layout skip fall back to render-and-send.
|
|
7
|
+
* Invokes the server components a layout renders, so the error-path layout
|
|
8
|
+
* probe sees an HTTP access fallback thrown below the layout's own function
|
|
9
|
+
* body. The real RSC render remains authoritative.
|
|
13
10
|
*/
|
|
14
11
|
export declare function probeReactServerSubtree(node: unknown, options?: ProbeReactServerSubtreeOptions): Promise<void>;
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
layoutFlags: LayoutFlags;
|
|
18
|
-
};
|
|
19
|
-
type ProbeAppPageBeforeRenderOptions = {
|
|
20
|
-
skipProbes?: boolean;
|
|
21
|
-
layoutCount: number;
|
|
22
|
-
probeLayoutAt: (layoutIndex: number) => unknown;
|
|
23
|
-
renderLayoutSpecialError: (specialError: AppPageSpecialError, layoutIndex: number) => Promise<Response>;
|
|
24
|
-
resolveSpecialError: (error: unknown) => AppPageSpecialError | null;
|
|
25
|
-
runWithSuppressedHookWarning<T>(probe: () => Promise<T>): Promise<T>;
|
|
26
|
-
/** When provided, enables per-layout static/dynamic classification. */
|
|
27
|
-
classification?: LayoutClassificationOptions | null;
|
|
28
|
-
};
|
|
29
|
-
export declare function probeAppPageBeforeRender(options: ProbeAppPageBeforeRenderOptions): Promise<ProbeAppPageBeforeRenderResult>;
|
|
30
|
-
//#endregion
|
|
12
|
+
//#endregion
|
|
13
|
+
export {};
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { isPromiseLike } from "../utils/promise.js";
|
|
2
|
-
import { probeAppPageLayouts } from "./app-page-execution.js";
|
|
3
2
|
import { Fragment, isValidElement } from "react";
|
|
4
3
|
//#region src/server/app-page-probe.ts
|
|
5
4
|
const DEFAULT_SUBTREE_PROBE_MAX_DEPTH = 32;
|
|
@@ -63,10 +62,9 @@ async function resolveReactLazyType(lazyType) {
|
|
|
63
62
|
}
|
|
64
63
|
}
|
|
65
64
|
/**
|
|
66
|
-
* Invokes server
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* failures only make static-layout skip fall back to render-and-send.
|
|
65
|
+
* Invokes the server components a layout renders, so the error-path layout
|
|
66
|
+
* probe sees an HTTP access fallback thrown below the layout's own function
|
|
67
|
+
* body. The real RSC render remains authoritative.
|
|
70
68
|
*/
|
|
71
69
|
async function probeReactServerSubtree(node, options = {}) {
|
|
72
70
|
const maxDepth = options.maxDepth ?? DEFAULT_SUBTREE_PROBE_MAX_DEPTH;
|
|
@@ -118,36 +116,5 @@ async function probeReactServerSubtree(node, options = {}) {
|
|
|
118
116
|
};
|
|
119
117
|
await visit(node, 0);
|
|
120
118
|
}
|
|
121
|
-
async function probeAppPageBeforeRender(options) {
|
|
122
|
-
let layoutFlags = {};
|
|
123
|
-
if (options.skipProbes) return {
|
|
124
|
-
response: null,
|
|
125
|
-
layoutFlags
|
|
126
|
-
};
|
|
127
|
-
if (options.layoutCount > 0) {
|
|
128
|
-
const layoutProbeResult = await probeAppPageLayouts({
|
|
129
|
-
layoutCount: options.layoutCount,
|
|
130
|
-
async onLayoutError(layoutError, layoutIndex) {
|
|
131
|
-
const specialError = options.resolveSpecialError(layoutError);
|
|
132
|
-
if (!specialError) return null;
|
|
133
|
-
return options.renderLayoutSpecialError(specialError, layoutIndex);
|
|
134
|
-
},
|
|
135
|
-
probeLayoutAt: options.probeLayoutAt,
|
|
136
|
-
runWithSuppressedHookWarning(probe) {
|
|
137
|
-
return options.runWithSuppressedHookWarning(probe);
|
|
138
|
-
},
|
|
139
|
-
classification: options.classification
|
|
140
|
-
});
|
|
141
|
-
layoutFlags = layoutProbeResult.layoutFlags;
|
|
142
|
-
if (layoutProbeResult.response) return {
|
|
143
|
-
response: layoutProbeResult.response,
|
|
144
|
-
layoutFlags
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
return {
|
|
148
|
-
response: null,
|
|
149
|
-
layoutFlags
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
119
|
//#endregion
|
|
153
|
-
export {
|
|
120
|
+
export { probeReactServerSubtree };
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
import { ClientReuseManifestParseResult, ClientReuseManifestSkipDisposition } from "./client-reuse-manifest.js";
|
|
2
1
|
import { AppOutgoingElements } from "./app-elements-wire.js";
|
|
3
2
|
import "./app-elements.js";
|
|
4
3
|
import { AppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
5
4
|
import { NavigationContext } from "../shims/navigation-context-state.js";
|
|
6
5
|
import "../shims/navigation.js";
|
|
7
|
-
import { AppPageFontPreload, AppPageSpecialError
|
|
6
|
+
import { AppPageFontPreload, AppPageSpecialError } from "./app-page-execution.js";
|
|
8
7
|
import { AppPageMiddlewareContext } from "./app-page-response.js";
|
|
9
|
-
import { AppLayoutParamAccessTracker } from "./app-layout-param-observation.js";
|
|
10
8
|
import { RootParams } from "../shims/root-params.js";
|
|
11
9
|
import { AppPageSsrHandler } from "./app-page-stream.js";
|
|
12
10
|
import { AppRenderErrorContextOverrides } from "./app-rsc-error-handler.js";
|
|
@@ -29,6 +27,11 @@ type AppPageSpecialErrorRenderOptions = {
|
|
|
29
27
|
* candidate's render it must not carry the request's query.
|
|
30
28
|
*/
|
|
31
29
|
isCacheCandidate?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* The page's own document, in which parallel slot boundaries caught the
|
|
32
|
+
* error, to send in place of a fallback page.
|
|
33
|
+
*/
|
|
34
|
+
caughtDocument?: Response;
|
|
32
35
|
};
|
|
33
36
|
type PreparedAppPageElement = {
|
|
34
37
|
element: AppPageRenderableElement;
|
|
@@ -105,7 +108,6 @@ type RenderAppPageLifecycleOptionsBase = {
|
|
|
105
108
|
isrSet: AppPageCacheSetter;
|
|
106
109
|
interceptionContext?: string | null;
|
|
107
110
|
interceptionId?: string | null;
|
|
108
|
-
layoutCount: number;
|
|
109
111
|
loadSsrHandler: () => Promise<AppPageSsrHandler>;
|
|
110
112
|
middlewareContext: AppPageMiddlewareContext;
|
|
111
113
|
navigationParams: Record<string, unknown>;
|
|
@@ -115,12 +117,10 @@ type RenderAppPageLifecycleOptionsBase = {
|
|
|
115
117
|
abortPprFallbackShell?: () => void;
|
|
116
118
|
rootParams?: RootParams;
|
|
117
119
|
peekRenderObservationState?: () => AppPageRenderObservationState;
|
|
118
|
-
probeLayoutAt: (layoutIndex: number) => unknown;
|
|
119
120
|
expireSeconds?: number;
|
|
120
121
|
formState?: ReactFormState | null;
|
|
121
122
|
revalidateSeconds: number | null;
|
|
122
123
|
renderErrorBoundaryResponse: (error: unknown, errorOrigin: "rsc" | "ssr") => Promise<Response | null>;
|
|
123
|
-
renderLayoutSpecialError: (specialError: AppPageSpecialError, layoutIndex: number) => Promise<Response>;
|
|
124
124
|
renderPageSpecialError: (specialError: AppPageSpecialError, renderOptions?: AppPageSpecialErrorRenderOptions) => Promise<Response>;
|
|
125
125
|
renderToReadableStream: (element: ReactNode | AppOutgoingElements, options: {
|
|
126
126
|
onError: AppPageBoundaryOnError;
|
|
@@ -133,16 +133,11 @@ type RenderAppPageLifecycleOptionsBase = {
|
|
|
133
133
|
prelude: ReadableStream<Uint8Array>;
|
|
134
134
|
}>;
|
|
135
135
|
routePattern: string;
|
|
136
|
-
runWithSuppressedHookWarning<T>(probe: () => Promise<T>): Promise<T>;
|
|
137
136
|
scriptNonce?: string;
|
|
138
|
-
clientReuseManifest?: ClientReuseManifestParseResult;
|
|
139
|
-
skipDisposition?: ClientReuseManifestSkipDisposition;
|
|
140
137
|
mountedSlotsHeader?: string | null;
|
|
141
138
|
renderedPathAndSearch?: string | null;
|
|
142
139
|
renderMode?: AppRscRenderMode;
|
|
143
140
|
waitUntil?: (promise: Promise<void>) => void;
|
|
144
|
-
layoutParamAccess?: AppLayoutParamAccessTracker;
|
|
145
|
-
classification?: LayoutClassificationOptions | null;
|
|
146
141
|
};
|
|
147
142
|
type RenderAppPageLifecycleOptions = RenderAppPageLifecycleOptionsBase & ({
|
|
148
143
|
element: AppPageRenderableElement;
|
|
@@ -158,6 +153,7 @@ type RenderAppPageLifecycleOptions = RenderAppPageLifecycleOptionsBase & ({
|
|
|
158
153
|
* its response policy, such as error boundaries and special errors, get the
|
|
159
154
|
* same header as the normal render.
|
|
160
155
|
*/
|
|
161
|
-
export declare function applyIneligibleRouteCachePolicy(response: Response, options: Pick<RenderAppPageLifecycleOptions, "dynamicStaleTimeSeconds" | "isDraftMode" | "isDynamicError" | "isForceDynamic" | "isForceStatic" | "isProduction" | "isProgressiveActionRender" | "isRscRequest" | "isStaticEligible" | "middlewareContext" | "peekDynamicUsage" | "revalidateSeconds" | "scriptNonce">,
|
|
156
|
+
export declare function applyIneligibleRouteCachePolicy(response: Response, options: Pick<RenderAppPageLifecycleOptions, "dynamicStaleTimeSeconds" | "isDraftMode" | "isDynamicError" | "isForceDynamic" | "isForceStatic" | "isProduction" | "isProgressiveActionRender" | "isRscRequest" | "isStaticEligible" | "middlewareContext" | "peekDynamicUsage" | "revalidateSeconds" | "scriptNonce">, requestCacheLife?: AppPageRequestCacheLife | null): Response;
|
|
162
157
|
export declare function renderAppPageLifecycle(options: RenderAppPageLifecycleOptions): Promise<Response>;
|
|
163
|
-
//#endregion
|
|
158
|
+
//#endregion
|
|
159
|
+
export {};
|