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
|
@@ -15,14 +15,78 @@ function isReactOwnedAppComponent(component) {
|
|
|
15
15
|
if (candidate?.$$typeof === REACT_MEMO || candidate?.$$typeof === REACT_LAZY || candidate?.$$typeof === REACT_FORWARD_REF) return false;
|
|
16
16
|
return typeof candidate !== "function" || candidate.$$typeof === REACT_CLIENT_REFERENCE || candidate.prototype?.isReactComponent != null;
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* `mapError` replaces an error thrown by a CSS-wrapped export's inner
|
|
20
|
+
* component, which renders after this call returns. The caller maps the
|
|
21
|
+
* errors this call throws or rejects with.
|
|
22
|
+
*/
|
|
23
|
+
function invokeAppComponent(component, props, mapError) {
|
|
24
|
+
return invokeAppComponentObserved(component, props, mapError, void 0);
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Like `invokeAppComponent()`. `onSettled` hears of a value returned
|
|
28
|
+
* synchronously; the caller reports a promise result or a thrown error.
|
|
29
|
+
*/
|
|
30
|
+
function invokeAppComponentObserved(component, props, mapError, onSettled) {
|
|
19
31
|
const candidate = component;
|
|
20
|
-
if (candidate.$$typeof === REACT_MEMO && candidate.type) return
|
|
21
|
-
if (candidate.$$typeof === REACT_LAZY && candidate._init) return
|
|
22
|
-
if (candidate.$$typeof === REACT_FORWARD_REF && candidate.render)
|
|
23
|
-
|
|
32
|
+
if (candidate.$$typeof === REACT_MEMO && candidate.type) return invokeAppComponentObserved(candidate.type, props, mapError, onSettled);
|
|
33
|
+
if (candidate.$$typeof === REACT_LAZY && candidate._init) return invokeAppComponentObserved(candidate._init(candidate._payload), props, mapError, onSettled);
|
|
34
|
+
if (candidate.$$typeof === REACT_FORWARD_REF && candidate.render) {
|
|
35
|
+
const result = candidate.render(props, void 0);
|
|
36
|
+
if (!isPromiseLike(result)) onSettled?.();
|
|
37
|
+
return result;
|
|
38
|
+
}
|
|
39
|
+
if (isReactOwnedAppComponent(candidate)) {
|
|
40
|
+
onSettled?.();
|
|
41
|
+
return createElement(candidate, props);
|
|
42
|
+
}
|
|
24
43
|
const result = candidate(props);
|
|
25
|
-
return isPromiseLike(result) ? result : invokeCssWrappedComponent(result, props);
|
|
44
|
+
return isPromiseLike(result) ? result : invokeCssWrappedComponent(result, props, mapError, onSettled);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* `invokeAppComponent()`, with every error the component throws or rejects
|
|
48
|
+
* with replaced by `mapError(error)`, including its CSS-wrapped inner one's.
|
|
49
|
+
* `onSettled` hears once how the component, or that inner one, ended.
|
|
50
|
+
*/
|
|
51
|
+
function invokeAppComponentMappingErrors(component, props, mapError, onSettled) {
|
|
52
|
+
const fail = (error) => {
|
|
53
|
+
if (isAppRenderSuspension(error)) return error;
|
|
54
|
+
const mapped = mapError(error);
|
|
55
|
+
onSettled?.({ error: mapped });
|
|
56
|
+
return mapped;
|
|
57
|
+
};
|
|
58
|
+
try {
|
|
59
|
+
const result = invokeAppComponentObserved(component, props, mapError, onSettled);
|
|
60
|
+
return isPromiseLike(result) ? trackAppComponentResult(result, fail, onSettled) : result;
|
|
61
|
+
} catch (error) {
|
|
62
|
+
throw fail(error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Records how `result` settles on the promise itself, as React's thenables
|
|
67
|
+
* do, with `fail(error)` as a rejection's reason. Flight then reads that
|
|
68
|
+
* outcome rather than tracking the promise, so the result reaches it in the
|
|
69
|
+
* same tick as an unmapped one. A promise chained with `.then()` resolves a
|
|
70
|
+
* tick later, which costs a large page about a tenth more render work.
|
|
71
|
+
*/
|
|
72
|
+
function trackAppComponentResult(result, fail, onSettled) {
|
|
73
|
+
const thenable = result;
|
|
74
|
+
if (thenable.status !== void 0) return Promise.resolve(result).then((value) => {
|
|
75
|
+
onSettled?.();
|
|
76
|
+
return value;
|
|
77
|
+
}, (error) => {
|
|
78
|
+
throw fail(error);
|
|
79
|
+
});
|
|
80
|
+
thenable.status = "pending";
|
|
81
|
+
thenable.then((value) => {
|
|
82
|
+
thenable.status = "fulfilled";
|
|
83
|
+
thenable.value = value;
|
|
84
|
+
onSettled?.();
|
|
85
|
+
}, (error) => {
|
|
86
|
+
thenable.status = "rejected";
|
|
87
|
+
thenable.reason = fail(error);
|
|
88
|
+
});
|
|
89
|
+
return thenable;
|
|
26
90
|
}
|
|
27
91
|
/**
|
|
28
92
|
* Whether `elementProps` are what `createElement(type, props)` produces: the
|
|
@@ -48,28 +112,33 @@ function isElementOfProps(elementProps, props, defaultProps) {
|
|
|
48
112
|
* component from an element without props instead, as for an export without
|
|
49
113
|
* CSS.
|
|
50
114
|
*/
|
|
51
|
-
function invokeCssWrappedComponent(result, props) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
const component =
|
|
58
|
-
if (!isElementOfProps(inner.props, props, component.defaultProps)) return result;
|
|
59
|
-
const componentProps = inner.props;
|
|
115
|
+
function invokeCssWrappedComponent(result, props, mapError, onSettled) {
|
|
116
|
+
const wrapped = readCssWrappedComponent(result, props);
|
|
117
|
+
if (!wrapped) {
|
|
118
|
+
onSettled?.();
|
|
119
|
+
return result;
|
|
120
|
+
}
|
|
121
|
+
const { component, componentProps, css } = wrapped;
|
|
60
122
|
function CssWrappedComponent() {
|
|
61
|
-
return invokeAppComponent(component, componentProps);
|
|
123
|
+
return mapError ? invokeAppComponentMappingErrors(component, componentProps, mapError, onSettled) : invokeAppComponent(component, componentProps);
|
|
62
124
|
}
|
|
63
125
|
CssWrappedComponent.displayName = component.displayName ?? component.name;
|
|
64
126
|
return createElement(Fragment, null, css, createElement(CssWrappedComponent));
|
|
65
127
|
}
|
|
66
|
-
|
|
67
|
-
function
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
128
|
+
/** The parts of `result`, if it's a CSS-wrapped export's element for `props`. */
|
|
129
|
+
function readCssWrappedComponent(result, props) {
|
|
130
|
+
if (!isValidElement(result) || result.type !== Fragment || result.key !== null) return null;
|
|
131
|
+
const children = result.props.children;
|
|
132
|
+
if (!Array.isArray(children) || children.length !== 2) return null;
|
|
133
|
+
const [css, inner] = children;
|
|
134
|
+
if (!isValidElement(inner) || typeof inner.type !== "function" || inner.key !== null) return null;
|
|
135
|
+
const component = inner.type;
|
|
136
|
+
if (!isElementOfProps(inner.props, props, component.defaultProps)) return null;
|
|
137
|
+
return {
|
|
138
|
+
component,
|
|
139
|
+
componentProps: inner.props,
|
|
140
|
+
css
|
|
141
|
+
};
|
|
73
142
|
}
|
|
74
143
|
function createAppRenderDependency() {
|
|
75
144
|
let released = false;
|
|
@@ -111,17 +180,15 @@ function renderAfterAppDependencies(children, dependencies) {
|
|
|
111
180
|
}
|
|
112
181
|
return /* @__PURE__ */ jsx(AwaitAppRenderDependencies, {});
|
|
113
182
|
}
|
|
114
|
-
function renderAppComponentWithDependencyBarrier(component, props, dependency) {
|
|
183
|
+
function renderAppComponentWithDependencyBarrier(component, props, dependency, mapError, onSettled) {
|
|
115
184
|
function AppComponentDependencyBarrier() {
|
|
116
185
|
try {
|
|
117
|
-
const result = invokeAppComponent(component, props);
|
|
118
|
-
if (isPromiseLike(result))
|
|
119
|
-
dependency.release();
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
throw error;
|
|
124
|
-
});
|
|
186
|
+
const result = mapError ? invokeAppComponentMappingErrors(component, props, mapError, onSettled) : invokeAppComponent(component, props);
|
|
187
|
+
if (isPromiseLike(result)) {
|
|
188
|
+
const release = () => dependency.release();
|
|
189
|
+
result.then(release, release);
|
|
190
|
+
return result;
|
|
191
|
+
}
|
|
125
192
|
dependency.release();
|
|
126
193
|
return result;
|
|
127
194
|
} catch (error) {
|
|
@@ -132,4 +199,4 @@ function renderAppComponentWithDependencyBarrier(component, props, dependency) {
|
|
|
132
199
|
return createElement(AppComponentDependencyBarrier);
|
|
133
200
|
}
|
|
134
201
|
//#endregion
|
|
135
|
-
export { createAppPageRenderDependency, createAppRenderDependency, invokeAppComponent, isAppClientReference, isAppRenderSuspension, isReactOwnedAppComponent,
|
|
202
|
+
export { createAppPageRenderDependency, createAppRenderDependency, invokeAppComponent, invokeAppComponentMappingErrors, isAppClientReference, isAppRenderSuspension, isReactOwnedAppComponent, renderAfterAppDependencies, renderAppComponentWithDependencyBarrier };
|
|
@@ -44,7 +44,7 @@ async function dispatchAppRequestStage(request, ctx, dispatchResponseStage, opti
|
|
|
44
44
|
headRequest,
|
|
45
45
|
middlewareCookieOverlay: null,
|
|
46
46
|
prerenderDiscovery: options.prerenderDiscovery,
|
|
47
|
-
protocolVersion:
|
|
47
|
+
protocolVersion: 13,
|
|
48
48
|
requestOrigin: new URL(request.url).origin,
|
|
49
49
|
scriptNonce: null,
|
|
50
50
|
staticFileSignalToken,
|
|
@@ -5,4 +5,5 @@ import { DispatchAppWorkerResponseStage } from "./app-worker-stages.js";
|
|
|
5
5
|
export type AppRequestStageEnv = Record<string, unknown>;
|
|
6
6
|
type AppRequestStageContext = ExecutionContextLike & VinextRequestStageContext;
|
|
7
7
|
export declare function handleRequestStage(request: Request, env: AppRequestStageEnv | undefined, ctx: AppRequestStageContext | undefined, dispatchResponseStage: DispatchAppWorkerResponseStage): Promise<Response>;
|
|
8
|
-
//#endregion
|
|
8
|
+
//#endregion
|
|
9
|
+
export {};
|
|
@@ -6,4 +6,5 @@ type AppResponseStageEnv = Record<string, unknown>;
|
|
|
6
6
|
/** Invoke one transformed public cache function without rendering its owning route. */
|
|
7
7
|
export declare function invokeCacheFunction(invocation: VinextCacheFunctionInvocation, env: AppResponseStageEnv | undefined, platformCtx: ExecutionContextLike | undefined, dispatchRequestStage: VinextRequestStageTransport): Promise<void>;
|
|
8
8
|
export declare function handleResponseStage(request: Request, env: AppResponseStageEnv | undefined, platformCtx: ExecutionContextLike | undefined, props: AppWorkerResponseStageProps, dispatchRequestStage: VinextRequestStageTransport, options?: VinextResponseStageDispatchOptions): Promise<Response>;
|
|
9
|
-
//#endregion
|
|
9
|
+
//#endregion
|
|
10
|
+
export {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isrCacheControl, resolveRouteExpireSeconds } from "./isr-cache.js";
|
|
2
|
-
import { makeThenableParams } from "../shims/thenable-params.js";
|
|
3
2
|
import { applyRouteHandlerMiddlewareContext, assertSupportedAppRouteHandlerResponse, buildAppRouteCacheValue, buildRouteHandlerCachedResponse } from "./app-route-handler-response.js";
|
|
3
|
+
import { makeThenableParams } from "../shims/thenable-params.js";
|
|
4
4
|
import { markKnownDynamicAppRoute } from "./app-route-handler-runtime.js";
|
|
5
5
|
import { resolveAppRouteHandlerSpecialError } from "./app-route-handler-policy.js";
|
|
6
6
|
import { completeAppRouteHandlerResponse, runAppRouteHandler, traceAppRouteHandlerExecution } from "./app-route-handler-execution.js";
|
|
@@ -57,7 +57,7 @@ async function readAppRouteHandlerCacheResponse(options) {
|
|
|
57
57
|
setHeadersAccessPhase: options.setHeadersAccessPhase
|
|
58
58
|
}) };
|
|
59
59
|
} catch (error) {
|
|
60
|
-
if (resolveAppRouteHandlerSpecialError(error
|
|
60
|
+
if (resolveAppRouteHandlerSpecialError(error)) return { specialError: error };
|
|
61
61
|
throw error;
|
|
62
62
|
}
|
|
63
63
|
});
|
|
@@ -1,22 +1,23 @@
|
|
|
1
1
|
import { closeAfterResponse, createRequestContext, getRequestContext, runWithRequestContext } from "../shims/unified-request-context.js";
|
|
2
|
-
import "../utils/protocol-headers.js";
|
|
2
|
+
import { PRERENDER_REVALIDATE_HEADER } from "../utils/protocol-headers.js";
|
|
3
3
|
import { getRequestExecutionContext } from "../shims/request-context.js";
|
|
4
4
|
import { runInWorkStoreScope } from "../shims/internal/work-store-scope.js";
|
|
5
5
|
import { reportRequestError } from "./instrumentation.js";
|
|
6
6
|
import { beginRouteCacheability, getRouteCacheabilityDynamicReason } from "../shims/cacheability-classification.js";
|
|
7
7
|
import { applyCdnResponseBuildIdentityHeaders } from "./cache-control.js";
|
|
8
8
|
import { isOnDemandRevalidateRequest } from "./revalidation-request.js";
|
|
9
|
+
import { coalesceOnDemandResponse } from "./isr-cache.js";
|
|
9
10
|
import { markDynamicUsage } from "../shims/internal/headers-state.js";
|
|
10
11
|
import { consumeDynamicUsage, getActiveDraftModeState, getAndClearPendingCookies, getDraftModeCookieHeader, isDraftModeRequest, setHeadersAccessPhase } from "../shims/headers.js";
|
|
11
12
|
import { _drainPendingRevalidations } from "../shims/cache-request-state.js";
|
|
12
13
|
import { ensureFetchPatch, getCollectedFetchTags, setCurrentFetchCacheMode, setCurrentFetchRevalidate, setCurrentFetchSoftTags, setCurrentForceDynamicFetchDefault } from "../shims/fetch-cache.js";
|
|
13
14
|
import { resolveAppRouteHandlerFetchCacheMode } from "./app-segment-config.js";
|
|
14
|
-
import { setNavigationContext } from "../shims/navigation-context-state.js";
|
|
15
|
-
import { makeThenableParams } from "../shims/thenable-params.js";
|
|
16
15
|
import { traceResponseStart } from "./response-start-tracing.js";
|
|
17
|
-
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
18
16
|
import { applyRouteHandlerMiddlewareContext, finalizeRouteHandlerResponse } from "./app-route-handler-response.js";
|
|
17
|
+
import { setNavigationContext } from "../shims/navigation-context-state.js";
|
|
19
18
|
import "../shims/navigation.js";
|
|
19
|
+
import { makeThenableParams } from "../shims/thenable-params.js";
|
|
20
|
+
import { buildPageCacheTags } from "./implicit-tags.js";
|
|
20
21
|
import { isKnownDynamicAppRoute, isValidHTTPMethod } from "./app-route-handler-runtime.js";
|
|
21
22
|
import { getAppRouteHandlerRevalidateSeconds, hasAppRouteHandlerDefaultExport, hasNonStaticAppRouteHandlerMethods, resolveAppRouteHandlerMethod, shouldReadAppRouteHandlerCache } from "./app-route-handler-policy.js";
|
|
22
23
|
import { createStaticGenerationHeadersContext } from "./app-static-generation.js";
|
|
@@ -94,7 +95,8 @@ async function dispatchAppRouteHandlerImpl(options) {
|
|
|
94
95
|
headers: { Allow: allowHeaderForOptions }
|
|
95
96
|
}));
|
|
96
97
|
const resolvedHandlerFn = isAppRouteHandlerFunction(handlerFn) ? handlerFn : void 0;
|
|
97
|
-
const
|
|
98
|
+
const isOnDemandRevalidate = isOnDemandRevalidateRequest(options.request.headers.get(PRERENDER_REVALIDATE_HEADER));
|
|
99
|
+
const isStoredRoute = options.bypassSharedCache !== true && revalidateSeconds !== null && !getRouteCacheabilityDynamicReason() && shouldReadAppRouteHandlerCache({
|
|
98
100
|
dynamicConfig: handler.dynamic,
|
|
99
101
|
handlerFn: resolvedHandlerFn,
|
|
100
102
|
isAutoHead,
|
|
@@ -104,12 +106,13 @@ async function dispatchAppRouteHandlerImpl(options) {
|
|
|
104
106
|
method,
|
|
105
107
|
revalidateSeconds
|
|
106
108
|
});
|
|
107
|
-
const
|
|
109
|
+
const shouldReadRouteCache = isStoredRoute && !isOnDemandRevalidate;
|
|
110
|
+
const revalidateReason = isOnDemandRevalidate ? "on-demand" : shouldReadRouteCache && revalidateSeconds !== Infinity ? "stale" : void 0;
|
|
108
111
|
const fetchCacheMode = resolveAppRouteHandlerFetchCacheMode(handler);
|
|
109
112
|
setCurrentFetchCacheMode(fetchCacheMode);
|
|
110
113
|
setCurrentFetchRevalidate(configuredRevalidateSeconds);
|
|
111
114
|
setCurrentForceDynamicFetchDefault(handler.dynamic === "force-dynamic");
|
|
112
|
-
let isRevalidation =
|
|
115
|
+
let isRevalidation = isStoredRoute && isOnDemandRevalidate;
|
|
113
116
|
if (shouldReadRouteCache && resolvedHandlerFn) {
|
|
114
117
|
const cachedRouteResponse = await readAppRouteHandlerCacheResponse({
|
|
115
118
|
basePath: options.basePath,
|
|
@@ -167,7 +170,7 @@ async function dispatchAppRouteHandlerImpl(options) {
|
|
|
167
170
|
if (cachedRouteResponse) return applyCdnResponseBuildIdentityHeaders(cachedRouteResponse);
|
|
168
171
|
}
|
|
169
172
|
if (resolvedHandlerFn) {
|
|
170
|
-
const
|
|
173
|
+
const handlerOptions = {
|
|
171
174
|
isRevalidation,
|
|
172
175
|
basePath: options.basePath,
|
|
173
176
|
bypassSharedCache: options.bypassSharedCache,
|
|
@@ -210,8 +213,10 @@ async function dispatchAppRouteHandlerImpl(options) {
|
|
|
210
213
|
revalidateReason,
|
|
211
214
|
routePattern: route.pattern,
|
|
212
215
|
setHeadersAccessPhase
|
|
213
|
-
}
|
|
214
|
-
|
|
216
|
+
};
|
|
217
|
+
const runHandler = async () => applyCdnResponseBuildIdentityHeaders(await executeAppRouteHandler(handlerOptions));
|
|
218
|
+
if (isOnDemandRevalidate && isStoredRoute) return coalesceOnDemandResponse(`${method}:${options.isrRouteKey(options.cleanPathname)}`, method, runHandler);
|
|
219
|
+
return runHandler();
|
|
215
220
|
}
|
|
216
221
|
return finalizeFrameworkResponse(new Response(null, { status: 405 }));
|
|
217
222
|
}
|
|
@@ -104,4 +104,5 @@ type ExecuteAppRouteHandlerOptions = {
|
|
|
104
104
|
export declare function runAppRouteHandler(options: RunAppRouteHandlerOptions): Promise<RunAppRouteHandlerResult>;
|
|
105
105
|
export declare function executeAppRouteHandler(options: ExecuteAppRouteHandlerOptions): Promise<Response>;
|
|
106
106
|
export declare function traceAppRouteHandlerExecution<T>(routePattern: string, callback: (span: FrameworkSpan) => T): T;
|
|
107
|
-
//#endregion
|
|
107
|
+
//#endregion
|
|
108
|
+
export {};
|
|
@@ -167,7 +167,7 @@ async function executeAppRouteHandlerImpl(options) {
|
|
|
167
167
|
})
|
|
168
168
|
};
|
|
169
169
|
} catch (error) {
|
|
170
|
-
if (resolveAppRouteHandlerSpecialError(error,
|
|
170
|
+
if (resolveAppRouteHandlerSpecialError(error, { isAction: isPossibleAppRouteActionRequest(options.request) })) return {
|
|
171
171
|
kind: "special",
|
|
172
172
|
error
|
|
173
173
|
};
|
|
@@ -284,7 +284,8 @@ async function executeAppRouteHandlerImpl(options) {
|
|
|
284
284
|
console.error("[vinext] ISR route cache write error:", cacheErr);
|
|
285
285
|
}
|
|
286
286
|
})();
|
|
287
|
-
options.
|
|
287
|
+
if (options.revalidateReason === "on-demand") await routeWritePromise;
|
|
288
|
+
else options.executionContext?.waitUntil(routeWritePromise);
|
|
288
289
|
}
|
|
289
290
|
let finalized = applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(response, {
|
|
290
291
|
pendingCookies,
|
|
@@ -321,7 +322,11 @@ async function executeAppRouteHandlerImpl(options) {
|
|
|
321
322
|
const draftCookie = handlerDraftCookie ?? options.initialDraftModeCookie;
|
|
322
323
|
const shouldApplyDraftPolicy = (options.getActiveDraftModeState?.() ?? options.isDraftMode === true) || draftCookie != null;
|
|
323
324
|
if (handlerDraftCookie != null) markKnownDynamicAppRoute(options.routePattern);
|
|
324
|
-
const specialError = resolveAppRouteHandlerSpecialError(error,
|
|
325
|
+
const specialError = resolveAppRouteHandlerSpecialError(error, { isAction: isPossibleAppRouteActionRequest(options.request) });
|
|
326
|
+
if (specialError && options.consumeDynamicUsage()) recordRouteCacheability({
|
|
327
|
+
cacheable: false,
|
|
328
|
+
dynamicUsage: true
|
|
329
|
+
});
|
|
325
330
|
options.clearRequestContext();
|
|
326
331
|
if (specialError) {
|
|
327
332
|
if (specialError.kind === "redirect") return applyDraftModeCachePolicy(applyRouteHandlerMiddlewareContext(finalizeRouteHandlerResponse(new Response(null, {
|
|
@@ -64,6 +64,6 @@ export declare function shouldApplyAppRouteHandlerRevalidateHeader(options: Omit
|
|
|
64
64
|
*/
|
|
65
65
|
export declare function shouldCompleteAppRouteHandlerResponse(options: AppRouteHandlerResponseCacheOptions): boolean;
|
|
66
66
|
export declare function shouldWriteAppRouteHandlerCache(options: AppRouteHandlerResponseCacheOptions): boolean;
|
|
67
|
-
export declare function resolveAppRouteHandlerSpecialError(error: unknown,
|
|
67
|
+
export declare function resolveAppRouteHandlerSpecialError(error: unknown, options?: AppRouteHandlerSpecialErrorOptions): AppRouteHandlerSpecialError | null;
|
|
68
68
|
//#endregion
|
|
69
69
|
export { isPossibleAppRouteActionRequest };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
|
|
2
1
|
import { isPossibleAppRouteActionRequest } from "./app-action-request.js";
|
|
2
|
+
import { parseNextHttpErrorDigest, parseNextRedirectDigest } from "./next-error-digest.js";
|
|
3
3
|
import { buildRouteHandlerAllowHeader, collectRouteHandlerMethods } from "./app-route-handler-runtime.js";
|
|
4
4
|
//#region src/server/app-route-handler-policy.ts
|
|
5
5
|
function getAppRouteHandlerRevalidateSeconds(handler) {
|
|
@@ -53,13 +53,13 @@ function shouldCompleteAppRouteHandlerResponse(options) {
|
|
|
53
53
|
function shouldWriteAppRouteHandlerCache(options) {
|
|
54
54
|
return options.isProduction && options.revalidateSeconds !== null && options.revalidateSeconds > 0 && options.dynamicConfig !== "force-dynamic" && !options.isDraftMode && !options.dynamicUsedInHandler && (options.method === "GET" || options.isAutoHead);
|
|
55
55
|
}
|
|
56
|
-
function resolveAppRouteHandlerSpecialError(error,
|
|
56
|
+
function resolveAppRouteHandlerSpecialError(error, options) {
|
|
57
57
|
if (!(error && typeof error === "object" && "digest" in error)) return null;
|
|
58
58
|
const digest = String(error.digest);
|
|
59
59
|
const redirect = parseNextRedirectDigest(digest);
|
|
60
60
|
if (redirect) return {
|
|
61
61
|
kind: "redirect",
|
|
62
|
-
location:
|
|
62
|
+
location: redirect.url,
|
|
63
63
|
statusCode: options?.isAction ? 303 : redirect.status
|
|
64
64
|
};
|
|
65
65
|
const httpError = parseNextHttpErrorDigest(digest);
|
|
@@ -26,4 +26,5 @@ export declare function applyRouteHandlerRevalidateHeader(response: Response, re
|
|
|
26
26
|
export declare function markRouteHandlerCacheMiss(response: Response): void;
|
|
27
27
|
export declare function buildAppRouteCacheValue(response: Response, browserCacheControl?: string): Promise<CachedRouteValue>;
|
|
28
28
|
export declare function finalizeRouteHandlerResponse(response: Response, options: FinalizeRouteHandlerResponseOptions): Response;
|
|
29
|
-
//#endregion
|
|
29
|
+
//#endregion
|
|
30
|
+
export {};
|
|
@@ -5,8 +5,8 @@ import { markRouteCacheabilityExplicitResponsePolicy, recordRouteCacheability }
|
|
|
5
5
|
import { applyCdnResponseHeaders } from "./cache-control.js";
|
|
6
6
|
import { buildAppRouteMissIsrCacheControl, decideIsr } from "./isr-decision.js";
|
|
7
7
|
import { setCacheStateHeaders } from "./cache-headers.js";
|
|
8
|
-
import { mergeMiddlewareResponseHeadersOntoResponse } from "./middleware-response-headers.js";
|
|
9
8
|
import { markEdgeRouteHandlerLinkHeaders } from "./app-response-header-provenance.js";
|
|
9
|
+
import { mergeMiddlewareResponseHeadersOntoResponse } from "./middleware-response-headers.js";
|
|
10
10
|
import { getSetCookieName } from "./cookie-utils.js";
|
|
11
11
|
//#region src/server/app-route-handler-response.ts
|
|
12
12
|
const APP_ROUTE_REWRITE_ERROR = "NextResponse.rewrite() was used in a app route handler, this is not currently supported. Please remove the invocation to continue.";
|
|
@@ -76,8 +76,14 @@ function buildNextConfig(options) {
|
|
|
76
76
|
* Undici's Request follows its input's signal through a WeakRef, and so does
|
|
77
77
|
* every clone between the host signal and the handler's request. A handler
|
|
78
78
|
* that only listens on `request.signal` (e.g. to stop a stream) would miss the
|
|
79
|
-
* abort once GC collects any of them, so the request
|
|
80
|
-
*
|
|
79
|
+
* abort once GC collects any of them, so the request stays reachable for as
|
|
80
|
+
* long as the host signal is.
|
|
81
|
+
*
|
|
82
|
+
* The request must not follow the host signal itself, though. Undici registers
|
|
83
|
+
* every Request in a FinalizationRegistry whose held value strongly references
|
|
84
|
+
* the followed signal, so the registry would keep the host signal (the WeakMap
|
|
85
|
+
* key) and therefore the request alive forever. It follows a relay instead,
|
|
86
|
+
* which the host signal aborts through a strong listener.
|
|
81
87
|
*/
|
|
82
88
|
const requestsByHostSignal = /* @__PURE__ */ new WeakMap();
|
|
83
89
|
function retainWhileSignalLives(signal, request) {
|
|
@@ -85,6 +91,12 @@ function retainWhileSignalLives(signal, request) {
|
|
|
85
91
|
if (requests) requests.push(request);
|
|
86
92
|
else requestsByHostSignal.set(signal, [request]);
|
|
87
93
|
}
|
|
94
|
+
function followHostSignal(signal) {
|
|
95
|
+
const relay = new AbortController();
|
|
96
|
+
if (signal.aborted) relay.abort(signal.reason);
|
|
97
|
+
else signal.addEventListener("abort", () => relay.abort(signal.reason), { once: true });
|
|
98
|
+
return relay.signal;
|
|
99
|
+
}
|
|
88
100
|
function createForceStaticNextRequest(input, nextConfig, signal) {
|
|
89
101
|
const read = (key) => {
|
|
90
102
|
const descriptor = BUILT_IN_REQUEST_PROPERTY_MAP.get(key)?.descriptor;
|
|
@@ -228,9 +240,10 @@ function createTrackedAppRouteRequest(request, options = {}) {
|
|
|
228
240
|
const sourceCfDescriptor = Reflect.getOwnPropertyDescriptor(requestWithOverrides, "cf");
|
|
229
241
|
const sourceCfAccessor = sourceCfDescriptor?.get;
|
|
230
242
|
const sourceCfMetadata = sourceCfAccessor ? void 0 : Reflect.get(requestWithOverrides, "cf", requestWithOverrides);
|
|
231
|
-
const
|
|
243
|
+
const signal = options.signal ? followHostSignal(options.signal) : void 0;
|
|
244
|
+
const nextRequest = requestMode === "force-static" ? createForceStaticNextRequest(requestWithOverrides, nextConfig, signal) : requestWithOverrides instanceof NextRequest && sourceCfDescriptor?.configurable !== false && !signal ? requestWithOverrides : new NextRequest(requestWithOverrides, {
|
|
232
245
|
nextConfig: nextConfig ?? void 0,
|
|
233
|
-
signal
|
|
246
|
+
signal
|
|
234
247
|
});
|
|
235
248
|
if (options.signal) retainWhileSignalLives(options.signal, nextRequest);
|
|
236
249
|
const rawCfMetadata = sourceCfAccessor ? void 0 : sourceCfMetadata === void 0 ? Reflect.get(nextRequest, "cf", nextRequest) : sourceCfMetadata;
|
|
@@ -43,6 +43,14 @@ type LazyLoadableIntercept = {
|
|
|
43
43
|
__loadInterceptLayouts?: LazyModuleLoaderArray | null;
|
|
44
44
|
interceptLoadings?: readonly unknown[] | null;
|
|
45
45
|
__loadInterceptLoadings?: LazyModuleLoaderArray | null;
|
|
46
|
+
interceptNotFounds?: readonly unknown[] | null;
|
|
47
|
+
__loadInterceptNotFounds?: LazyModuleLoaderArray | null;
|
|
48
|
+
interceptForbiddens?: readonly unknown[] | null;
|
|
49
|
+
__loadInterceptForbiddens?: LazyModuleLoaderArray | null;
|
|
50
|
+
interceptUnauthorizeds?: readonly unknown[] | null;
|
|
51
|
+
__loadInterceptUnauthorizeds?: LazyModuleLoaderArray | null;
|
|
52
|
+
interceptErrors?: readonly unknown[] | null;
|
|
53
|
+
__loadInterceptErrors?: LazyModuleLoaderArray | null;
|
|
46
54
|
__loadState?: {
|
|
47
55
|
page?: unknown;
|
|
48
56
|
pageLoading?: Promise<unknown> | null;
|
|
@@ -60,6 +68,7 @@ type LazyLoadableSlot = {
|
|
|
60
68
|
loadings?: readonly unknown[];
|
|
61
69
|
error?: unknown;
|
|
62
70
|
notFound?: unknown;
|
|
71
|
+
notFounds?: readonly unknown[];
|
|
63
72
|
__loadPage?: LazyModuleThunk | null;
|
|
64
73
|
__loadDefault?: LazyModuleThunk | null;
|
|
65
74
|
__loadLayout?: LazyModuleThunk | null;
|
|
@@ -68,6 +77,7 @@ type LazyLoadableSlot = {
|
|
|
68
77
|
__loadLoadings?: LazyModuleLoaderArray | null;
|
|
69
78
|
__loadError?: LazyModuleThunk | null;
|
|
70
79
|
__loadNotFound?: LazyModuleThunk | null;
|
|
80
|
+
__loadNotFounds?: LazyModuleLoaderArray | null;
|
|
71
81
|
/** Hydrated only after an intercept matches, not with the slot's base modules. */
|
|
72
82
|
intercepts?: LazyLoadableIntercept[];
|
|
73
83
|
};
|
|
@@ -82,6 +92,9 @@ export type LazyLoadableRoute = {
|
|
|
82
92
|
notFounds?: unknown[];
|
|
83
93
|
forbiddens?: unknown[];
|
|
84
94
|
unauthorizeds?: unknown[];
|
|
95
|
+
segmentNotFounds?: unknown[];
|
|
96
|
+
segmentForbiddens?: unknown[];
|
|
97
|
+
segmentUnauthorizeds?: unknown[];
|
|
85
98
|
loading?: unknown;
|
|
86
99
|
error?: unknown;
|
|
87
100
|
notFound?: unknown;
|
|
@@ -101,6 +114,9 @@ export type LazyLoadableRoute = {
|
|
|
101
114
|
__loadNotFounds?: LazyModuleLoaderArray | null;
|
|
102
115
|
__loadForbiddens?: LazyModuleLoaderArray | null;
|
|
103
116
|
__loadUnauthorizeds?: LazyModuleLoaderArray | null;
|
|
117
|
+
__loadSegmentNotFounds?: LazyModuleLoaderArray | null;
|
|
118
|
+
__loadSegmentForbiddens?: LazyModuleLoaderArray | null;
|
|
119
|
+
__loadSegmentUnauthorizeds?: LazyModuleLoaderArray | null;
|
|
104
120
|
__loadLoading?: LazyModuleThunk | null;
|
|
105
121
|
__loadError?: LazyModuleThunk | null;
|
|
106
122
|
__loadNotFound?: LazyModuleThunk | null;
|
|
@@ -123,4 +139,5 @@ export declare function loadAppInterceptLayouts(intercept: LazyLoadableIntercept
|
|
|
123
139
|
* `null`/`undefined` routes and on eager routes that have no lazy thunks.
|
|
124
140
|
*/
|
|
125
141
|
export declare function ensureAppRouteModulesLoaded<TRoute extends LazyLoadableRoute>(route: TRoute | null | undefined): TRoute | Promise<TRoute>;
|
|
126
|
-
//#endregion
|
|
142
|
+
//#endregion
|
|
143
|
+
export {};
|
|
@@ -92,6 +92,10 @@ function loadAppInterceptLayouts(intercept) {
|
|
|
92
92
|
const loads = [];
|
|
93
93
|
pushArrayLoads(loads, intercept.interceptLayouts, intercept.__loadInterceptLayouts);
|
|
94
94
|
pushArrayLoads(loads, intercept.interceptLoadings, intercept.__loadInterceptLoadings);
|
|
95
|
+
pushArrayLoads(loads, intercept.interceptNotFounds, intercept.__loadInterceptNotFounds);
|
|
96
|
+
pushArrayLoads(loads, intercept.interceptForbiddens, intercept.__loadInterceptForbiddens);
|
|
97
|
+
pushArrayLoads(loads, intercept.interceptUnauthorizeds, intercept.__loadInterceptUnauthorizeds);
|
|
98
|
+
pushArrayLoads(loads, intercept.interceptErrors, intercept.__loadInterceptErrors);
|
|
95
99
|
if (loads.length === 0) return Promise.resolve(intercept.interceptLayouts ?? []);
|
|
96
100
|
const loading = shareIsolatePromise(Promise.all(loads).then(() => {
|
|
97
101
|
if (loadState) loadState.interceptLayoutsLoading = null;
|
|
@@ -130,6 +134,9 @@ function ensureAppRouteModulesLoaded(route) {
|
|
|
130
134
|
pushArrayLoads(loads, route.notFounds, route.__loadNotFounds);
|
|
131
135
|
pushArrayLoads(loads, route.forbiddens, route.__loadForbiddens);
|
|
132
136
|
pushArrayLoads(loads, route.unauthorizeds, route.__loadUnauthorizeds);
|
|
137
|
+
pushArrayLoads(loads, route.segmentNotFounds, route.__loadSegmentNotFounds);
|
|
138
|
+
pushArrayLoads(loads, route.segmentForbiddens, route.__loadSegmentForbiddens);
|
|
139
|
+
pushArrayLoads(loads, route.segmentUnauthorizeds, route.__loadSegmentUnauthorizeds);
|
|
133
140
|
for (const slot of Object.values(route.slots ?? {})) {
|
|
134
141
|
pushFieldLoad(loads, slot, "page", slot.__loadPage);
|
|
135
142
|
pushFieldLoad(loads, slot, "default", slot.__loadDefault);
|
|
@@ -139,6 +146,7 @@ function ensureAppRouteModulesLoaded(route) {
|
|
|
139
146
|
pushArrayLoads(loads, slot.loadings, slot.__loadLoadings);
|
|
140
147
|
pushFieldLoad(loads, slot, "error", slot.__loadError);
|
|
141
148
|
pushFieldLoad(loads, slot, "notFound", slot.__loadNotFound);
|
|
149
|
+
pushArrayLoads(loads, slot.notFounds, slot.__loadNotFounds);
|
|
142
150
|
}
|
|
143
151
|
if (loads.length === 0) {
|
|
144
152
|
route.__loaded = true;
|
|
@@ -39,4 +39,5 @@ export type PrefetchInliningConfig = false | {
|
|
|
39
39
|
};
|
|
40
40
|
export declare function isRouteTreePrefetchRequest(request: Request): boolean;
|
|
41
41
|
export declare function createRouteTreePrefetchResponse(route: AppRouteTreePrefetchRoute, options?: RouteTreePrefetchResponseOptions): Promise<Response>;
|
|
42
|
-
//#endregion
|
|
42
|
+
//#endregion
|
|
43
|
+
export {};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { VINEXT_RSC_RENDER_MODE_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
|
|
2
1
|
import { AppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
2
|
+
import { VINEXT_RSC_RENDER_MODE_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
|
|
3
3
|
import { AppRscStateFingerprintInput } from "./app-rsc-state-fingerprint.js";
|
|
4
4
|
//#region src/server/app-rsc-cache-busting.d.ts
|
|
5
5
|
/**
|
|
@@ -13,10 +13,10 @@ export declare const VINEXT_RSC_BUILD_ID_HEADER = "X-Vinext-RSC-Build-Id";
|
|
|
13
13
|
export declare const VINEXT_RSC_COMPATIBILITY_ID_HEADER = "X-Vinext-RSC-Compatibility-Id";
|
|
14
14
|
export declare const VINEXT_RSC_CONTENT_TYPE = "text/x-component";
|
|
15
15
|
type CreateRscRequestHeadersOptions = {
|
|
16
|
-
clientReuseManifestHeader?: string | null;
|
|
17
16
|
interceptionContext?: string | null;
|
|
18
17
|
interceptionId?: string | null;
|
|
19
18
|
mountedSlotsHeader?: string | null;
|
|
19
|
+
mountedLayoutsHeader?: string | null;
|
|
20
20
|
includePrefetchHeader?: boolean;
|
|
21
21
|
renderMode?: AppRscRenderMode;
|
|
22
22
|
fetchPriority?: "auto" | "high" | "low";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { NEXT_ROUTER_PREFETCH_HEADER, NEXT_ROUTER_SEGMENT_PREFETCH_HEADER, NEXT_ROUTER_STATE_TREE_HEADER, NEXT_URL_HEADER, VINEXT_INTERCEPTION_CONTEXT_HEADER, VINEXT_INTERCEPTION_ID_HEADER, VINEXT_MOUNTED_SLOTS_HEADER, VINEXT_RSC_RENDER_MODE_HEADER, VINEXT_RSC_STATE_FINGERPRINT_HEADER, VINEXT_RSC_VARY_HEADER } from "./app-rsc-vary.js";
|
|
2
|
-
import { NEXTJS_DEPLOYMENT_ID_HEADER,
|
|
2
|
+
import { NEXTJS_DEPLOYMENT_ID_HEADER, VINEXT_MOUNTED_LAYOUTS_HEADER } from "./headers.js";
|
|
3
3
|
import { APP_RSC_RENDER_MODE_PREFETCH_LOADING_SHELL, parseAppRscRenderMode } from "./app-rsc-render-mode.js";
|
|
4
4
|
import { fnv1a64 } from "../utils/hash.js";
|
|
5
5
|
import { applyDeploymentIdHeader, getDeploymentId } from "../utils/deployment-id.js";
|
|
@@ -183,7 +183,7 @@ function createRscRequestHeaders(options = {}) {
|
|
|
183
183
|
if (options.interceptionContext !== void 0 && options.interceptionContext !== null) headers.set(VINEXT_INTERCEPTION_CONTEXT_HEADER, options.interceptionContext);
|
|
184
184
|
if (options.interceptionId !== void 0 && options.interceptionId !== null) headers.set(VINEXT_INTERCEPTION_ID_HEADER, options.interceptionId);
|
|
185
185
|
if (options.mountedSlotsHeader !== void 0 && options.mountedSlotsHeader !== null) headers.set(VINEXT_MOUNTED_SLOTS_HEADER, options.mountedSlotsHeader);
|
|
186
|
-
if (options.
|
|
186
|
+
if (options.mountedLayoutsHeader !== void 0 && options.mountedLayoutsHeader !== null) headers.set(VINEXT_MOUNTED_LAYOUTS_HEADER, options.mountedLayoutsHeader);
|
|
187
187
|
const renderMode = options.renderMode ?? "navigation";
|
|
188
188
|
if (renderMode !== "navigation") headers.set(VINEXT_RSC_RENDER_MODE_HEADER, renderMode);
|
|
189
189
|
return headers;
|
|
@@ -199,8 +199,8 @@ function canonicalizePrewarmableRscRequestHeaders(headers) {
|
|
|
199
199
|
headers.delete(NEXT_ROUTER_SEGMENT_PREFETCH_HEADER);
|
|
200
200
|
headers.delete(NEXT_ROUTER_STATE_TREE_HEADER);
|
|
201
201
|
headers.delete(NEXT_URL_HEADER);
|
|
202
|
+
headers.delete(VINEXT_MOUNTED_LAYOUTS_HEADER);
|
|
202
203
|
headers.delete(VINEXT_RSC_STATE_FINGERPRINT_HEADER);
|
|
203
|
-
headers.delete(VINEXT_CLIENT_REUSE_MANIFEST_HEADER);
|
|
204
204
|
return true;
|
|
205
205
|
}
|
|
206
206
|
/**
|
|
@@ -214,8 +214,8 @@ function canonicalizeLoadingShellRscRequestHeaders(headers) {
|
|
|
214
214
|
headers.set(NEXT_ROUTER_SEGMENT_PREFETCH_HEADER, "1");
|
|
215
215
|
headers.delete(NEXT_ROUTER_STATE_TREE_HEADER);
|
|
216
216
|
headers.delete(NEXT_URL_HEADER);
|
|
217
|
+
headers.delete(VINEXT_MOUNTED_LAYOUTS_HEADER);
|
|
217
218
|
headers.delete(VINEXT_RSC_STATE_FINGERPRINT_HEADER);
|
|
218
|
-
headers.delete(VINEXT_CLIENT_REUSE_MANIFEST_HEADER);
|
|
219
219
|
return true;
|
|
220
220
|
}
|
|
221
221
|
const RSC_REQUEST_URL_BASE = "http://vinext.local";
|
|
@@ -20,7 +20,9 @@ export type AppRenderErrorContextOverrides = {
|
|
|
20
20
|
* the incoming Web `Request`, wires it into a `createRscOnErrorHandler` call,
|
|
21
21
|
* and binds the configured `reportRequestError` reporter.
|
|
22
22
|
*
|
|
23
|
-
*
|
|
23
|
+
* Takes all deps explicitly. The only module-level state is the set of errors
|
|
24
|
+
* each request already logged, keyed weakly by its `Request`.
|
|
24
25
|
*/
|
|
25
26
|
export declare function createAppRscOnErrorHandler(reportRequestError: ReportRequestError, request: Request, pathname: string, routePath: string, overrides?: AppRenderErrorContextOverrides): (error: unknown) => string | undefined;
|
|
26
|
-
//#endregion
|
|
27
|
+
//#endregion
|
|
28
|
+
export {};
|