vinext 1.3.0 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/_rolldown/runtime.js +1 -1
- package/dist/build/action-owner-manifest.d.ts +3 -2
- package/dist/build/action-owner-manifest.js +18 -2
- package/dist/build/app-page-static-eligibility.d.ts +17 -1
- package/dist/build/app-page-static-eligibility.js +80 -13
- package/dist/build/clean-output.d.ts +2 -1
- package/dist/build/client-build-config.d.ts +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/layout-classification.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 +5 -4
- package/dist/build/report.d.ts +2 -1
- package/dist/build/route-classification-injector.d.ts +2 -1
- package/dist/build/route-classification-manifest.d.ts +2 -1
- package/dist/build/run-prerender.d.ts +2 -1
- package/dist/build/server-actions-encryption-key.d.ts +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 +4 -0
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli.js +2 -0
- package/dist/client/client-redirect-matcher.js +2 -1
- package/dist/client/client-redirects.d.ts +4 -3
- package/dist/client/client-redirects.js +2 -1
- package/dist/client/client-rewrites.d.ts +2 -1
- package/dist/client/dev-error-overlay-store.d.ts +2 -1
- package/dist/client/index.js +1 -2
- package/dist/client/instrumentation-client-state.js +5 -5
- package/dist/client/navigation-runtime.d.ts +3 -1
- package/dist/client/navigation-runtime.js +1 -1
- 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 +13 -1
- package/dist/config/next-config.js +29 -4
- package/dist/config/tsconfig-paths.d.ts +2 -1
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
- package/dist/entries/app-browser-entry.d.ts +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 +42 -12
- package/dist/entries/app-rsc-manifest.d.ts +2 -1
- package/dist/entries/app-rsc-manifest.js +53 -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 +1 -1
- 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 +102 -34
- package/dist/plugins/client-compile-hints.d.ts +30 -0
- package/dist/plugins/client-compile-hints.js +88 -0
- package/dist/plugins/client-reference-dedup.d.ts +2 -1
- package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
- package/dist/plugins/dynamic-preload-metadata.js +1 -1
- package/dist/plugins/environment.d.ts +2 -1
- package/dist/plugins/fonts.js +9 -12
- package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
- package/dist/plugins/import-meta-url.d.ts +2 -1
- package/dist/plugins/og-assets.d.ts +2 -1
- package/dist/plugins/og-assets.js +2 -3
- package/dist/plugins/optimize-imports.d.ts +2 -1
- package/dist/plugins/pages-node-externals.d.ts +2 -1
- package/dist/plugins/remove-console.d.ts +2 -1
- package/dist/plugins/require-condition-resolution.d.ts +2 -1
- package/dist/plugins/rsc-client-reference-loaders.d.ts +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/worker-image-imports.js +1 -1
- package/dist/plugins/worker-use-server.d.ts +2 -1
- package/dist/routing/app-route-graph.d.ts +40 -0
- package/dist/routing/app-route-graph.js +122 -50
- 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/app-action-forwarding.d.ts +2 -1
- package/dist/server/app-bfcache-identity.d.ts +2 -1
- package/dist/server/app-browser-action-result.d.ts +2 -1
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
- package/dist/server/app-browser-entry.js +30 -6
- package/dist/server/app-browser-error.d.ts +2 -1
- package/dist/server/app-browser-history-controller.d.ts +2 -1
- package/dist/server/app-browser-hydration.d.ts +2 -1
- package/dist/server/app-browser-interception-context.d.ts +2 -1
- package/dist/server/app-browser-navigation-controller.js +15 -10
- package/dist/server/app-browser-popstate.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
- package/dist/server/app-browser-server-action-client.d.ts +2 -1
- package/dist/server/app-browser-state.js +1 -1
- package/dist/server/app-browser-stream.d.ts +2 -1
- package/dist/server/app-browser-visible-commit.d.ts +2 -1
- 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 +2 -1
- package/dist/server/app-elements.d.ts +2 -0
- package/dist/server/app-elements.js +3 -1
- package/dist/server/app-fallback-renderer.d.ts +9 -2
- package/dist/server/app-fallback-renderer.js +4 -1
- package/dist/server/app-history-state.d.ts +2 -1
- package/dist/server/app-inline-css-client.d.ts +2 -1
- package/dist/server/app-layout-param-observation.d.ts +2 -1
- package/dist/server/app-metadata-tracing.d.ts +2 -1
- package/dist/server/app-optimistic-routing.d.ts +18 -1
- package/dist/server/app-optimistic-routing.js +34 -1
- package/dist/server/app-page-boundary-render.d.ts +20 -2
- package/dist/server/app-page-boundary-render.js +221 -38
- package/dist/server/app-page-boundary.d.ts +34 -5
- package/dist/server/app-page-boundary.js +40 -7
- package/dist/server/app-page-cache-finalizer.d.ts +2 -1
- package/dist/server/app-page-cache-finalizer.js +1 -1
- package/dist/server/app-page-cache-render.d.ts +10 -2
- package/dist/server/app-page-cache-render.js +14 -2
- package/dist/server/app-page-cache.js +2 -2
- package/dist/server/app-page-dispatch.d.ts +34 -1
- package/dist/server/app-page-dispatch.js +163 -34
- package/dist/server/app-page-element-builder.d.ts +17 -1
- package/dist/server/app-page-element-builder.js +187 -66
- package/dist/server/app-page-execution.d.ts +28 -1
- package/dist/server/app-page-execution.js +114 -5
- package/dist/server/app-page-head.d.ts +95 -3
- package/dist/server/app-page-head.js +307 -152
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
- package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
- package/dist/server/app-page-method.d.ts +2 -1
- package/dist/server/app-page-probe.d.ts +2 -1
- package/dist/server/app-page-render-identity.d.ts +2 -1
- package/dist/server/app-page-render.d.ts +7 -1
- package/dist/server/app-page-render.js +35 -10
- package/dist/server/app-page-request.d.ts +14 -1
- package/dist/server/app-page-request.js +1 -1
- package/dist/server/app-page-route-wiring.d.ts +52 -2
- package/dist/server/app-page-route-wiring.js +197 -47
- package/dist/server/app-page-rsc-render-status.d.ts +2 -1
- 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 +31 -1
- package/dist/server/app-page-stream.js +23 -4
- package/dist/server/app-pages-bridge.d.ts +2 -1
- 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 +11 -1
- package/dist/server/app-render-dependency.js +26 -7
- 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-dispatch.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.js +1 -1
- package/dist/server/app-route-handler-execution.d.ts +2 -1
- package/dist/server/app-route-handler-response.d.ts +2 -1
- package/dist/server/app-route-handler-runtime.d.ts +2 -1
- 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-error-handler.d.ts +2 -1
- package/dist/server/app-rsc-errors.d.ts +2 -1
- package/dist/server/app-rsc-handler.d.ts +2 -1
- package/dist/server/app-rsc-handler.js +6 -10
- package/dist/server/app-rsc-response-finalizer.d.ts +2 -1
- 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 +2 -1
- package/dist/server/app-server-action-execution.js +3 -3
- package/dist/server/app-ssr-entry.d.ts +6 -0
- package/dist/server/app-ssr-entry.js +91 -44
- 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 +299 -67
- package/dist/server/app-static-generation.d.ts +2 -1
- package/dist/server/app-streamed-client-references.d.ts +39 -0
- package/dist/server/app-streamed-client-references.js +156 -0
- package/dist/server/app-visited-response-cache.d.ts +2 -1
- package/dist/server/app-worker-stages.d.ts +2 -1
- package/dist/server/artifact-compatibility.d.ts +2 -1
- package/dist/server/bfcache-identity.d.ts +2 -1
- package/dist/server/cache-headers.d.ts +2 -1
- package/dist/server/cacheability-request.d.ts +2 -1
- package/dist/server/client-reuse-manifest.d.ts +2 -1
- package/dist/server/config-headers.d.ts +2 -1
- package/dist/server/csp.d.ts +2 -1
- package/dist/server/default-global-not-found-module.d.ts +2 -1
- package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
- package/dist/server/default-http-access-fallback-modules.js +31 -0
- package/dist/server/defer-until-stream-consumed.d.ts +34 -0
- package/dist/server/defer-until-stream-consumed.js +154 -21
- package/dist/server/dev-lockfile.d.ts +32 -2
- package/dist/server/dev-lockfile.js +46 -2
- package/dist/server/dev-module-runner.d.ts +2 -1
- package/dist/server/dev-server.js +10 -3
- package/dist/server/fetch-handler.js +1 -2
- package/dist/server/file-based-metadata.d.ts +2 -1
- package/dist/server/framework-tracer.d.ts +2 -1
- package/dist/server/html.d.ts +1 -0
- package/dist/server/html.js +19 -1
- package/dist/server/http-conditional.d.ts +2 -1
- package/dist/server/http-error-responses.d.ts +2 -1
- package/dist/server/implicit-tags.d.ts +2 -1
- package/dist/server/metadata-route-build-data.d.ts +2 -1
- package/dist/server/metadata-route-build-data.js +1 -1
- package/dist/server/metadata-route-response.d.ts +2 -1
- package/dist/server/metadata-route-response.js +1 -1
- package/dist/server/metadata-routes.d.ts +2 -1
- package/dist/server/middleware-runtime.d.ts +2 -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-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-page-data.d.ts +7 -1
- package/dist/server/pages-page-data.js +35 -12
- package/dist/server/pages-page-handler.d.ts +3 -2
- package/dist/server/pages-page-handler.js +16 -7
- package/dist/server/pages-page-method.d.ts +2 -1
- package/dist/server/pages-page-response.d.ts +2 -1
- package/dist/server/pages-preview.d.ts +2 -1
- package/dist/server/pages-readiness.d.ts +2 -1
- package/dist/server/pages-request-pipeline.d.ts +2 -1
- package/dist/server/pages-request-pipeline.js +4 -5
- package/dist/server/pages-request-stage-entry.d.ts +2 -1
- package/dist/server/pages-response-stage-entry.d.ts +2 -1
- 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 +9 -3
- package/dist/server/request-log.d.ts +2 -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/static-file-cache.d.ts +2 -1
- package/dist/server/static-file-cache.js +1 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
- package/dist/server/worker-revalidation-context.d.ts +2 -1
- package/dist/server/worker-stages.d.ts +2 -1
- package/dist/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 +29 -9
- package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
- package/dist/shims/caught-not-found-boundaries.js +48 -0
- package/dist/shims/cdn-purge-routes.d.ts +2 -1
- package/dist/shims/client-locale.js +2 -1
- package/dist/shims/client-page-root.d.ts +2 -1
- package/dist/shims/config.d.ts +2 -1
- package/dist/shims/default-forbidden.d.ts +4 -0
- package/dist/shims/default-forbidden.js +18 -0
- package/dist/shims/default-not-found.d.ts +0 -5
- package/dist/shims/default-not-found.js +5 -41
- package/dist/shims/default-unauthorized.d.ts +4 -0
- package/dist/shims/default-unauthorized.js +18 -0
- package/dist/shims/error-boundary.d.ts +39 -3
- package/dist/shims/error-boundary.js +31 -16
- package/dist/shims/font-google.js +1 -2
- package/dist/shims/font-utils.d.ts +3 -2
- package/dist/shims/font-utils.js +5 -3
- package/dist/shims/form.js +1 -1
- 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/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 +195 -52
- package/dist/shims/metadata.d.ts +32 -11
- package/dist/shims/metadata.js +88 -26
- package/dist/shims/navigation-errors.d.ts +2 -1
- package/dist/shims/navigation.d.ts +22 -2
- package/dist/shims/navigation.js +74 -20
- package/dist/shims/pages-router-runtime.d.ts +2 -1
- package/dist/shims/ppr-fallback-shell.d.ts +2 -1
- package/dist/shims/router.js +14 -3
- package/dist/shims/unified-request-context.js +3 -3
- package/dist/typegen.d.ts +2 -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 +2 -1
- package/dist/utils/project.js +9 -1
- package/dist/utils/query.d.ts +2 -1
- package/dist/utils/sorted-array.d.ts +2 -1
- package/dist/utils/vite-cli-invocation.d.ts +2 -1
- package/package.json +5 -5
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
- package/dist/server/default-not-found-module.d.ts +0 -19
- package/dist/server/default-not-found-module.js +0 -18
- package/dist/server/rsc-stream-hints.d.ts +0 -21
- package/dist/server/rsc-stream-hints.js +0 -227
|
@@ -1,59 +1,23 @@
|
|
|
1
|
+
import { HTTPAccessErrorFallback } from "./http-access-error-fallback.js";
|
|
1
2
|
import React from "react";
|
|
2
3
|
//#region src/shims/default-not-found.tsx
|
|
3
4
|
/**
|
|
4
5
|
* Ported from Next.js's built-in default not-found component:
|
|
5
6
|
* https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/builtin/not-found.tsx
|
|
6
|
-
* https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/http-access-fallback/error-fallback.tsx
|
|
7
7
|
*
|
|
8
8
|
* Rendered when an App Router request resolves to a 404 and the user has not
|
|
9
9
|
* supplied their own `app/not-found.tsx` (or `app/global-not-found.tsx`).
|
|
10
|
-
* Matches Next.js's `HTTPAccessErrorFallback` exactly: a centered 404 / message
|
|
11
|
-
* pair with minified theme CSS and dark-mode media query.
|
|
12
10
|
*
|
|
13
11
|
* The message string `"This page could not be found."` (note the trailing
|
|
14
12
|
* period) is the canonical body asserted by Next.js's deploy suite
|
|
15
13
|
* (`test/e2e/app-dir/prefetching-not-found/prefetching-not-found.test.ts`,
|
|
16
14
|
* `test/e2e/basepath/error-pages.test.ts`).
|
|
17
15
|
*/
|
|
18
|
-
const styles = {
|
|
19
|
-
error: {
|
|
20
|
-
fontFamily: "system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"",
|
|
21
|
-
height: "100vh",
|
|
22
|
-
textAlign: "center",
|
|
23
|
-
display: "flex",
|
|
24
|
-
flexDirection: "column",
|
|
25
|
-
alignItems: "center",
|
|
26
|
-
justifyContent: "center"
|
|
27
|
-
},
|
|
28
|
-
desc: { display: "inline-block" },
|
|
29
|
-
h1: {
|
|
30
|
-
display: "inline-block",
|
|
31
|
-
margin: "0 20px 0 0",
|
|
32
|
-
padding: "0 23px 0 0",
|
|
33
|
-
fontSize: 24,
|
|
34
|
-
fontWeight: 500,
|
|
35
|
-
verticalAlign: "top",
|
|
36
|
-
lineHeight: "49px"
|
|
37
|
-
},
|
|
38
|
-
h2: {
|
|
39
|
-
fontSize: 14,
|
|
40
|
-
fontWeight: 400,
|
|
41
|
-
lineHeight: "49px",
|
|
42
|
-
margin: 0
|
|
43
|
-
}
|
|
44
|
-
};
|
|
45
|
-
const STATUS = 404;
|
|
46
|
-
const MESSAGE = "This page could not be found.";
|
|
47
|
-
/**
|
|
48
|
-
* Mirrors `<HTTPAccessErrorFallback status={404} message="This page could not be found." />`
|
|
49
|
-
* from Next.js. Kept in sync with the upstream component's structure so HTML
|
|
50
|
-
* snapshot diffs between Next.js and vinext stay minimal.
|
|
51
|
-
*/
|
|
52
16
|
function DefaultNotFound() {
|
|
53
|
-
return React.createElement(
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
}
|
|
17
|
+
return React.createElement(HTTPAccessErrorFallback, {
|
|
18
|
+
status: 404,
|
|
19
|
+
message: "This page could not be found."
|
|
20
|
+
});
|
|
57
21
|
}
|
|
58
22
|
//#endregion
|
|
59
23
|
export { DefaultNotFound as default };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HTTPAccessErrorFallback } from "./http-access-error-fallback.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
//#region src/shims/default-unauthorized.tsx
|
|
4
|
+
/**
|
|
5
|
+
* Ported from Next.js's built-in default unauthorized component:
|
|
6
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/builtin/unauthorized.tsx
|
|
7
|
+
*
|
|
8
|
+
* Rendered when `unauthorized()` is called and no `app/unauthorized.tsx`
|
|
9
|
+
* boundary catches it.
|
|
10
|
+
*/
|
|
11
|
+
function DefaultUnauthorized() {
|
|
12
|
+
return React.createElement(HTTPAccessErrorFallback, {
|
|
13
|
+
status: 401,
|
|
14
|
+
message: "You're not authorized to access this page."
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { DefaultUnauthorized as default };
|
|
@@ -78,12 +78,47 @@ type NotFoundBoundaryProps = {
|
|
|
78
78
|
fallback: React.ReactNode;
|
|
79
79
|
children: React.ReactNode;
|
|
80
80
|
resetKey?: string | null;
|
|
81
|
+
/** A parallel slot boundary's id, which the document may render caught. */
|
|
82
|
+
caughtId?: string;
|
|
81
83
|
};
|
|
84
|
+
type NotFoundBoundaryInnerProps = {
|
|
85
|
+
pathname: string | null;
|
|
86
|
+
initiallyNotFound?: boolean;
|
|
87
|
+
} & NotFoundBoundaryProps;
|
|
88
|
+
type NotFoundBoundaryState = {
|
|
89
|
+
notFound: boolean;
|
|
90
|
+
previousPathname: string | null;
|
|
91
|
+
previousResetKey: string | null;
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* Inner class component that catches notFound() errors and renders the
|
|
95
|
+
* not-found.tsx fallback. Resets when the pathname or the caller's segment
|
|
96
|
+
* reset key changes.
|
|
97
|
+
*
|
|
98
|
+
* The ErrorBoundary above re-throws notFound errors so they propagate up to this
|
|
99
|
+
* boundary. This must be placed above the ErrorBoundary in the component tree.
|
|
100
|
+
*/
|
|
101
|
+
export declare class NotFoundBoundaryInner extends React.Component<NotFoundBoundaryInnerProps, NotFoundBoundaryState> {
|
|
102
|
+
constructor(props: NotFoundBoundaryInnerProps);
|
|
103
|
+
componentDidMount(): void;
|
|
104
|
+
static getDerivedStateFromProps(props: NotFoundBoundaryInnerProps, state: NotFoundBoundaryState): NotFoundBoundaryState | null;
|
|
105
|
+
static getDerivedStateFromError(error: unknown): Partial<NotFoundBoundaryState>;
|
|
106
|
+
render(): string | number | bigint | boolean | React.JSX.Element | Iterable<React.ReactNode> | Promise<string | number | bigint | boolean | Iterable<React.ReactNode> | React.ReactElement<unknown, string | React.JSXElementConstructor<any>> | React.ReactPortal | null | undefined> | null | undefined;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Fallback for a page-level access boundary whose file belongs to an ancestor
|
|
110
|
+
* layout. Rethrowing from the fallback hands the signal to the next boundary
|
|
111
|
+
* up, so that layout's copy renders in place of the layouts below it while the
|
|
112
|
+
* page-level boundary keeps the element shape sibling routes share.
|
|
113
|
+
*/
|
|
114
|
+
export declare function HttpAccessFallbackPassthrough({ status }: {
|
|
115
|
+
status: 401 | 403 | 404;
|
|
116
|
+
}): never;
|
|
82
117
|
/**
|
|
83
118
|
* Wrapper that reads the current pathname and passes it to the inner class
|
|
84
|
-
* component.
|
|
119
|
+
* component.
|
|
85
120
|
*/
|
|
86
|
-
export declare function NotFoundBoundary({ fallback, children, resetKey }: NotFoundBoundaryProps): React.JSX.Element;
|
|
121
|
+
export declare function NotFoundBoundary({ fallback, children, resetKey, caughtId }: NotFoundBoundaryProps): React.JSX.Element;
|
|
87
122
|
type ForbiddenBoundaryProps = {
|
|
88
123
|
fallback: React.ReactNode;
|
|
89
124
|
children: React.ReactNode;
|
|
@@ -144,4 +179,5 @@ export declare class DevRecoveryBoundary extends React.Component<DevRecoveryBoun
|
|
|
144
179
|
componentDidCatch(): void;
|
|
145
180
|
render(): React.ReactNode;
|
|
146
181
|
}
|
|
147
|
-
//#endregion
|
|
182
|
+
//#endregion
|
|
183
|
+
export {};
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { isNavigationSignalError } from "../utils/navigation-signal.js";
|
|
3
|
-
import { decodeRedirectError, isRedirectError } from "./navigation-errors.js";
|
|
3
|
+
import { decodeRedirectError, forbidden, isRedirectError, notFound, unauthorized } from "./navigation-errors.js";
|
|
4
4
|
import "./navigation-server.js";
|
|
5
5
|
import { isRedirectToCurrentUrl, useErrorBoundaryPathname, useErrorBoundaryRouter } from "./error-boundary-navigation.js";
|
|
6
6
|
import DefaultGlobalError from "./default-global-error.js";
|
|
7
7
|
import { handleAppNavigationFailure } from "../client/app-nav-failure-handler.js";
|
|
8
8
|
import { VINEXT_DEV_ERROR_RECOVERY_EVENT } from "../utils/dev-error-recovery-event.js";
|
|
9
|
+
import { consumeCaughtNotFoundBoundary, useCaughtNotFoundBoundary } from "./caught-not-found-boundaries.js";
|
|
9
10
|
import React from "react";
|
|
10
11
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
11
12
|
//#region src/shims/error-boundary.tsx
|
|
@@ -29,11 +30,8 @@ function readBoundaryResetState(props) {
|
|
|
29
30
|
previousResetKey: normalizeBoundaryResetKey(props.resetKey)
|
|
30
31
|
};
|
|
31
32
|
}
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
const previousResetKey = normalizeBoundaryResetKey(previousResetState.previousResetKey);
|
|
35
|
-
if (nextResetKey !== null || previousResetKey !== null) return nextResetKey !== previousResetKey;
|
|
36
|
-
return nextResetState.previousPathname !== previousResetState.previousPathname;
|
|
33
|
+
function shouldResetSegmentBoundary(nextResetState, previousResetState) {
|
|
34
|
+
return nextResetState.previousPathname !== previousResetState.previousPathname || normalizeBoundaryResetKey(nextResetState.previousResetKey) !== normalizeBoundaryResetKey(previousResetState.previousResetKey);
|
|
37
35
|
}
|
|
38
36
|
function addDevErrorRecoveryListener(listener) {
|
|
39
37
|
if (typeof window === "undefined") return;
|
|
@@ -136,7 +134,7 @@ var ErrorBoundaryInner = class extends React.Component {
|
|
|
136
134
|
error: null,
|
|
137
135
|
...nextResetState
|
|
138
136
|
};
|
|
139
|
-
if (state.error &&
|
|
137
|
+
if (state.error && shouldResetSegmentBoundary(nextResetState, state)) return {
|
|
140
138
|
error: null,
|
|
141
139
|
...nextResetState
|
|
142
140
|
};
|
|
@@ -196,8 +194,8 @@ function GlobalErrorBoundary({ fallback, children }) {
|
|
|
196
194
|
}
|
|
197
195
|
/**
|
|
198
196
|
* Inner class component that catches notFound() errors and renders the
|
|
199
|
-
* not-found.tsx fallback. Resets
|
|
200
|
-
*
|
|
197
|
+
* not-found.tsx fallback. Resets when the pathname or the caller's segment
|
|
198
|
+
* reset key changes.
|
|
201
199
|
*
|
|
202
200
|
* The ErrorBoundary above re-throws notFound errors so they propagate up to this
|
|
203
201
|
* boundary. This must be placed above the ErrorBoundary in the component tree.
|
|
@@ -206,13 +204,16 @@ var NotFoundBoundaryInner = class extends React.Component {
|
|
|
206
204
|
constructor(props) {
|
|
207
205
|
super(props);
|
|
208
206
|
this.state = {
|
|
209
|
-
notFound:
|
|
207
|
+
notFound: props.initiallyNotFound === true,
|
|
210
208
|
...readBoundaryResetState(props)
|
|
211
209
|
};
|
|
212
210
|
}
|
|
211
|
+
componentDidMount() {
|
|
212
|
+
if (this.props.initiallyNotFound === true) consumeCaughtNotFoundBoundary(this.props.caughtId);
|
|
213
|
+
}
|
|
213
214
|
static getDerivedStateFromProps(props, state) {
|
|
214
215
|
const nextResetState = readBoundaryResetState(props);
|
|
215
|
-
if (state.notFound &&
|
|
216
|
+
if (state.notFound && shouldResetSegmentBoundary(nextResetState, state)) return {
|
|
216
217
|
notFound: false,
|
|
217
218
|
...nextResetState
|
|
218
219
|
};
|
|
@@ -237,15 +238,29 @@ var NotFoundBoundaryInner = class extends React.Component {
|
|
|
237
238
|
}
|
|
238
239
|
};
|
|
239
240
|
/**
|
|
241
|
+
* Fallback for a page-level access boundary whose file belongs to an ancestor
|
|
242
|
+
* layout. Rethrowing from the fallback hands the signal to the next boundary
|
|
243
|
+
* up, so that layout's copy renders in place of the layouts below it while the
|
|
244
|
+
* page-level boundary keeps the element shape sibling routes share.
|
|
245
|
+
*/
|
|
246
|
+
function HttpAccessFallbackPassthrough({ status }) {
|
|
247
|
+
if (status === 403) forbidden();
|
|
248
|
+
if (status === 401) unauthorized();
|
|
249
|
+
notFound();
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
240
252
|
* Wrapper that reads the current pathname and passes it to the inner class
|
|
241
|
-
* component.
|
|
253
|
+
* component.
|
|
242
254
|
*/
|
|
243
|
-
function NotFoundBoundary({ fallback, children, resetKey }) {
|
|
255
|
+
function NotFoundBoundary({ fallback, children, resetKey, caughtId }) {
|
|
244
256
|
const pathname = useErrorBoundaryPathname();
|
|
257
|
+
const initiallyNotFound = useCaughtNotFoundBoundary(caughtId);
|
|
245
258
|
return /* @__PURE__ */ jsx(NotFoundBoundaryInner, {
|
|
246
259
|
pathname,
|
|
247
260
|
resetKey,
|
|
248
261
|
fallback,
|
|
262
|
+
caughtId,
|
|
263
|
+
initiallyNotFound,
|
|
249
264
|
children
|
|
250
265
|
});
|
|
251
266
|
}
|
|
@@ -259,7 +274,7 @@ var ForbiddenBoundaryInner = class extends React.Component {
|
|
|
259
274
|
}
|
|
260
275
|
static getDerivedStateFromProps(props, state) {
|
|
261
276
|
const nextResetState = readBoundaryResetState(props);
|
|
262
|
-
if (state.forbidden &&
|
|
277
|
+
if (state.forbidden && shouldResetSegmentBoundary(nextResetState, state)) return {
|
|
263
278
|
forbidden: false,
|
|
264
279
|
...nextResetState
|
|
265
280
|
};
|
|
@@ -301,7 +316,7 @@ var UnauthorizedBoundaryInner = class extends React.Component {
|
|
|
301
316
|
}
|
|
302
317
|
static getDerivedStateFromProps(props, state) {
|
|
303
318
|
const nextResetState = readBoundaryResetState(props);
|
|
304
|
-
if (state.unauthorized &&
|
|
319
|
+
if (state.unauthorized && shouldResetSegmentBoundary(nextResetState, state)) return {
|
|
305
320
|
unauthorized: false,
|
|
306
321
|
...nextResetState
|
|
307
322
|
};
|
|
@@ -374,4 +389,4 @@ var DevRecoveryBoundary = class extends React.Component {
|
|
|
374
389
|
}
|
|
375
390
|
};
|
|
376
391
|
//#endregion
|
|
377
|
-
export { DevRecoveryBoundary, ErrorBoundary, ErrorBoundaryInner, ForbiddenBoundary, ForbiddenBoundaryInner, GlobalErrorBoundary, NotFoundBoundary, RedirectBoundary, RedirectErrorBoundary, SerializedErrorBoundary, UnauthorizedBoundary, UnauthorizedBoundaryInner };
|
|
392
|
+
export { DevRecoveryBoundary, ErrorBoundary, ErrorBoundaryInner, ForbiddenBoundary, ForbiddenBoundaryInner, GlobalErrorBoundary, HttpAccessFallbackPassthrough, NotFoundBoundary, NotFoundBoundaryInner, RedirectBoundary, RedirectErrorBoundary, SerializedErrorBoundary, UnauthorizedBoundary, UnauthorizedBoundaryInner };
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { buildGoogleFontsUrl, createFontLoader, googleFonts as default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles };
|
|
1
|
+
export { buildGoogleFontsUrl, createFontLoader, default, getSSRFontLinks, getSSRFontPreloads, getSSRFontStyles } from "./font-google-base.js";
|
|
@@ -47,9 +47,10 @@ export declare function resolveGoogleFontStyle(style: string | string[] | undefi
|
|
|
47
47
|
export declare function resolveSingleFaceStyle(input: FontFaceStyleInput): FontStyle;
|
|
48
48
|
export declare function formatFontClassRule(className: string, style: FontStyle): string;
|
|
49
49
|
/**
|
|
50
|
-
* Determine the
|
|
50
|
+
* Determine the preload `type` for a font file based on its extension.
|
|
51
51
|
* Uses endsWith() only to avoid false positives from substring matches
|
|
52
|
-
* (e.g. ".woff" matching ".woff2").
|
|
52
|
+
* (e.g. ".woff" matching ".woff2"). Matches Next.js, which emits
|
|
53
|
+
* `font/${ext}` for every font preload (including `font/eot`).
|
|
53
54
|
*/
|
|
54
55
|
export declare function getFontMimeType(pathOrUrl: string): string;
|
|
55
56
|
//#endregion
|
package/dist/shims/font-utils.js
CHANGED
|
@@ -92,15 +92,17 @@ function formatFontClassRule(className, style) {
|
|
|
92
92
|
].join("; ")}; }\n`;
|
|
93
93
|
}
|
|
94
94
|
/**
|
|
95
|
-
* Determine the
|
|
95
|
+
* Determine the preload `type` for a font file based on its extension.
|
|
96
96
|
* Uses endsWith() only to avoid false positives from substring matches
|
|
97
|
-
* (e.g. ".woff" matching ".woff2").
|
|
97
|
+
* (e.g. ".woff" matching ".woff2"). Matches Next.js, which emits
|
|
98
|
+
* `font/${ext}` for every font preload (including `font/eot`).
|
|
98
99
|
*/
|
|
99
100
|
function getFontMimeType(pathOrUrl) {
|
|
100
101
|
if (pathOrUrl.endsWith(".woff2")) return "font/woff2";
|
|
101
102
|
if (pathOrUrl.endsWith(".woff")) return "font/woff";
|
|
102
103
|
if (pathOrUrl.endsWith(".ttf")) return "font/ttf";
|
|
103
|
-
if (pathOrUrl.endsWith(".otf")) return "font/
|
|
104
|
+
if (pathOrUrl.endsWith(".otf")) return "font/otf";
|
|
105
|
+
if (pathOrUrl.endsWith(".eot")) return "font/eot";
|
|
104
106
|
return "font/woff2";
|
|
105
107
|
}
|
|
106
108
|
//#endregion
|
package/dist/shims/form.js
CHANGED
|
@@ -161,7 +161,7 @@ const Form = forwardRef(function Form(props, ref) {
|
|
|
161
161
|
const cacheKey = AppElementsWire.encodeCacheKey(rscUrl, interceptionContext);
|
|
162
162
|
const prefetched = getPrefetchedUrls();
|
|
163
163
|
if (prefetched.has(cacheKey)) return;
|
|
164
|
-
if (hasPrefetchCacheEntryForNavigation(rscUrl, interceptionContext, mountedSlotsHeader)) return;
|
|
164
|
+
if (hasPrefetchCacheEntryForNavigation(rscUrl, interceptionContext, mountedSlotsHeader, { reusePending: false })) return;
|
|
165
165
|
prefetched.add(cacheKey);
|
|
166
166
|
const fetchPromise = fetch(rscUrl, {
|
|
167
167
|
headers,
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
//#region src/shims/http-access-error-fallback.tsx
|
|
3
|
+
/**
|
|
4
|
+
* Ported from Next.js's built-in HTTP access fallback UI:
|
|
5
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/http-access-fallback/error-fallback.tsx
|
|
6
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/styles/access-error-styles.ts
|
|
7
|
+
*
|
|
8
|
+
* Shared by the built-in not-found, forbidden and unauthorized pages: a
|
|
9
|
+
* centered status / message pair with minified theme CSS and dark-mode media
|
|
10
|
+
* query. Kept in sync with the upstream component's structure so HTML
|
|
11
|
+
* snapshot diffs between Next.js and vinext stay minimal.
|
|
12
|
+
*/
|
|
13
|
+
const styles = {
|
|
14
|
+
error: {
|
|
15
|
+
fontFamily: "system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"",
|
|
16
|
+
height: "100vh",
|
|
17
|
+
textAlign: "center",
|
|
18
|
+
display: "flex",
|
|
19
|
+
flexDirection: "column",
|
|
20
|
+
alignItems: "center",
|
|
21
|
+
justifyContent: "center"
|
|
22
|
+
},
|
|
23
|
+
desc: { display: "inline-block" },
|
|
24
|
+
h1: {
|
|
25
|
+
display: "inline-block",
|
|
26
|
+
margin: "0 20px 0 0",
|
|
27
|
+
padding: "0 23px 0 0",
|
|
28
|
+
fontSize: 24,
|
|
29
|
+
fontWeight: 500,
|
|
30
|
+
verticalAlign: "top",
|
|
31
|
+
lineHeight: "49px"
|
|
32
|
+
},
|
|
33
|
+
h2: {
|
|
34
|
+
fontSize: 14,
|
|
35
|
+
fontWeight: 400,
|
|
36
|
+
lineHeight: "49px",
|
|
37
|
+
margin: 0
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
function HTTPAccessErrorFallback({ status, message }) {
|
|
41
|
+
return React.createElement(React.Fragment, null, React.createElement("title", null, `${status}: ${message}`), React.createElement("div", { style: styles.error }, React.createElement("div", null, React.createElement("style", { dangerouslySetInnerHTML: { __html: "body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}" } }), React.createElement("h1", {
|
|
42
|
+
className: "next-error-h1",
|
|
43
|
+
style: styles.h1
|
|
44
|
+
}, status), React.createElement("div", { style: styles.desc }, React.createElement("h2", { style: styles.h2 }, message)))));
|
|
45
|
+
}
|
|
46
|
+
//#endregion
|
|
47
|
+
export { HTTPAccessErrorFallback };
|
package/dist/shims/image.d.ts
CHANGED
|
@@ -4,27 +4,6 @@ import { ImageLoader, ImageProps as ImageProps$1, StaticImageData, StaticRequire
|
|
|
4
4
|
//#region src/shims/image.d.ts
|
|
5
5
|
export type ImageLoaderProps = Parameters<ImageLoader>[0];
|
|
6
6
|
export type ImageProps = ImageProps$1;
|
|
7
|
-
declare const Image: React.ForwardRefExoticComponent<
|
|
8
|
-
src: string | import("@vinext/types/next/upstream/dist/shared/lib/get-img-props").StaticImport;
|
|
9
|
-
alt: string;
|
|
10
|
-
width?: number | `${number}`;
|
|
11
|
-
height?: number | `${number}`;
|
|
12
|
-
fill?: boolean;
|
|
13
|
-
loader?: ImageLoader;
|
|
14
|
-
quality?: number | `${number}`;
|
|
15
|
-
preload?: boolean;
|
|
16
|
-
priority?: boolean;
|
|
17
|
-
loading?: "eager" | "lazy" | undefined;
|
|
18
|
-
placeholder?: import("@vinext/types/next/upstream/dist/shared/lib/get-img-props").PlaceholderValue;
|
|
19
|
-
blurDataURL?: string;
|
|
20
|
-
unoptimized?: boolean;
|
|
21
|
-
overrideSrc?: string;
|
|
22
|
-
onLoadingComplete?: import("@vinext/types/next/upstream/dist/shared/lib/get-img-props").OnLoadingComplete;
|
|
23
|
-
layout?: string;
|
|
24
|
-
objectFit?: string;
|
|
25
|
-
objectPosition?: string;
|
|
26
|
-
lazyBoundary?: string;
|
|
27
|
-
lazyRoot?: string;
|
|
28
|
-
} & React.RefAttributes<HTMLImageElement>>;
|
|
7
|
+
declare const Image: React.ForwardRefExoticComponent<ImageProps & React.RefAttributes<HTMLImageElement>>;
|
|
29
8
|
//#endregion
|
|
30
9
|
export { type ImageLoader, type StaticImageData, type StaticRequire, Image as default, getImageProps, imageOptimizationUrl };
|
|
@@ -4,8 +4,14 @@ export declare function releaseAppPrefetchFetchSlot(response: Response): void;
|
|
|
4
4
|
* Low-priority App Router prefetches share a small request queue. The consumer
|
|
5
5
|
* must either snapshot the returned Response with snapshotRscResponse() or call
|
|
6
6
|
* releaseAppPrefetchFetchSlot() when it drops the response without consuming it.
|
|
7
|
+
*
|
|
8
|
+
* `isWanted` is checked when a queued request reaches a free slot. Returning
|
|
9
|
+
* false drops it without fetching, like a cancelled Next.js prefetch task. A
|
|
10
|
+
* navigation that promotes the request skips the check.
|
|
7
11
|
*/
|
|
8
|
-
export declare function scheduleAppPrefetchFetch(fetcher: (signal: AbortSignal) => Promise<Response>, priority: "low" | "high"): Promise<Response>;
|
|
12
|
+
export declare function scheduleAppPrefetchFetch(fetcher: (signal: AbortSignal) => Promise<Response>, priority: "low" | "high", isWanted?: () => boolean): Promise<Response>;
|
|
13
|
+
/** Cancel a prefetch request that is still waiting for a slot; never aborts one in flight. */
|
|
14
|
+
export declare function cancelQueuedAppPrefetchFetch(promise: Promise<Response>): void;
|
|
9
15
|
/** Cancel a queued or in-flight prefetch request. No-op once it has settled. */
|
|
10
16
|
export declare function cancelAppPrefetchFetch(promise: Promise<Response> | undefined): void;
|
|
11
17
|
/**
|
|
@@ -19,6 +25,20 @@ export declare function cancelAppPrefetchFetch(promise: Promise<Response> | unde
|
|
|
19
25
|
* cap instead of waiting for a slot.
|
|
20
26
|
*
|
|
21
27
|
* No-op when the request has already started or was never queued.
|
|
28
|
+
*
|
|
29
|
+
* Also records a claim, live while `isCurrent` returns true, until the returned
|
|
30
|
+
* function releases it; see `isAppPrefetchFetchClaimed`.
|
|
31
|
+
*/
|
|
32
|
+
export declare function promoteAppPrefetchFetch(promise: Promise<Response> | undefined, isCurrent?: () => boolean): () => void;
|
|
33
|
+
/**
|
|
34
|
+
* Whether a current navigation is waiting on this prefetch. A staged prefetch
|
|
35
|
+
* (route tree, then payload) hands navigation a promise that wraps its queued
|
|
36
|
+
* requests, so promotion cannot reach them; they check this instead before
|
|
37
|
+
* dropping themselves.
|
|
38
|
+
*
|
|
39
|
+
* `claimedBy` limits this to claims made up to that `getAppPrefetchFetchClaimSequence()`.
|
|
22
40
|
*/
|
|
23
|
-
export declare function
|
|
41
|
+
export declare function isAppPrefetchFetchClaimed(promise: Promise<Response> | undefined, claimedBy?: number): boolean;
|
|
42
|
+
/** The sequence number of the latest claim on any prefetch. */
|
|
43
|
+
export declare function getAppPrefetchFetchClaimSequence(): number;
|
|
24
44
|
//#endregion
|
|
@@ -5,6 +5,12 @@ const MAX_DEFAULT_APP_PREFETCH_REQUESTS = 4;
|
|
|
5
5
|
const defaultAppPrefetchQueue = [];
|
|
6
6
|
/** Lets a consumer promote or cancel the request behind a promise it already holds. */
|
|
7
7
|
const appPrefetchFetchControls = /* @__PURE__ */ new WeakMap();
|
|
8
|
+
/**
|
|
9
|
+
* Navigations waiting on a promise, each live while it is current, with the
|
|
10
|
+
* sequence number it was claimed at.
|
|
11
|
+
*/
|
|
12
|
+
const appPrefetchFetchClaims = /* @__PURE__ */ new WeakMap();
|
|
13
|
+
let appPrefetchFetchClaimSequence = 0;
|
|
8
14
|
let activeDefaultAppPrefetchRequests = 0;
|
|
9
15
|
let defaultAppPrefetchDrainScheduled = false;
|
|
10
16
|
function drainDefaultAppPrefetchQueue() {
|
|
@@ -31,8 +37,12 @@ function releaseAppPrefetchFetchSlot(response) {
|
|
|
31
37
|
* Low-priority App Router prefetches share a small request queue. The consumer
|
|
32
38
|
* must either snapshot the returned Response with snapshotRscResponse() or call
|
|
33
39
|
* releaseAppPrefetchFetchSlot() when it drops the response without consuming it.
|
|
40
|
+
*
|
|
41
|
+
* `isWanted` is checked when a queued request reaches a free slot. Returning
|
|
42
|
+
* false drops it without fetching, like a cancelled Next.js prefetch task. A
|
|
43
|
+
* navigation that promotes the request skips the check.
|
|
34
44
|
*/
|
|
35
|
-
function scheduleAppPrefetchFetch(fetcher, priority) {
|
|
45
|
+
function scheduleAppPrefetchFetch(fetcher, priority, isWanted) {
|
|
36
46
|
const controller = new AbortController();
|
|
37
47
|
if (priority === "high") {
|
|
38
48
|
const promise = fetcher(controller.signal);
|
|
@@ -47,7 +57,13 @@ function scheduleAppPrefetchFetch(fetcher, priority) {
|
|
|
47
57
|
let started = false;
|
|
48
58
|
const promise = new Promise((resolve, reject) => {
|
|
49
59
|
rejectPromise = reject;
|
|
50
|
-
runner = () => {
|
|
60
|
+
runner = (promoted = false) => {
|
|
61
|
+
if (!promoted && isWanted?.() === false) {
|
|
62
|
+
appPrefetchFetchControls.delete(promise);
|
|
63
|
+
activeDefaultAppPrefetchRequests -= 1;
|
|
64
|
+
reject(new DOMException("Prefetch is no longer wanted", "AbortError"));
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
51
67
|
started = true;
|
|
52
68
|
let didRelease = false;
|
|
53
69
|
const release = () => {
|
|
@@ -73,25 +89,31 @@ function scheduleAppPrefetchFetch(fetcher, priority) {
|
|
|
73
89
|
}
|
|
74
90
|
};
|
|
75
91
|
});
|
|
92
|
+
const cancelQueued = () => {
|
|
93
|
+
if (started) return;
|
|
94
|
+
const index = defaultAppPrefetchQueue.indexOf(runner);
|
|
95
|
+
if (index === -1) return;
|
|
96
|
+
defaultAppPrefetchQueue.splice(index, 1);
|
|
97
|
+
appPrefetchFetchControls.delete(promise);
|
|
98
|
+
controller.abort();
|
|
99
|
+
rejectPromise(controller.signal.reason);
|
|
100
|
+
};
|
|
76
101
|
defaultAppPrefetchQueue.push(runner);
|
|
77
102
|
appPrefetchFetchControls.set(promise, {
|
|
78
103
|
runner,
|
|
104
|
+
cancelQueued,
|
|
79
105
|
cancel: () => {
|
|
80
|
-
if (started)
|
|
81
|
-
|
|
82
|
-
return;
|
|
83
|
-
}
|
|
84
|
-
const index = defaultAppPrefetchQueue.indexOf(runner);
|
|
85
|
-
if (index === -1) return;
|
|
86
|
-
defaultAppPrefetchQueue.splice(index, 1);
|
|
87
|
-
appPrefetchFetchControls.delete(promise);
|
|
88
|
-
controller.abort();
|
|
89
|
-
rejectPromise(controller.signal.reason);
|
|
106
|
+
if (started) controller.abort();
|
|
107
|
+
else cancelQueued();
|
|
90
108
|
}
|
|
91
109
|
});
|
|
92
110
|
scheduleDefaultAppPrefetchDrain();
|
|
93
111
|
return promise;
|
|
94
112
|
}
|
|
113
|
+
/** Cancel a prefetch request that is still waiting for a slot; never aborts one in flight. */
|
|
114
|
+
function cancelQueuedAppPrefetchFetch(promise) {
|
|
115
|
+
appPrefetchFetchControls.get(promise)?.cancelQueued?.();
|
|
116
|
+
}
|
|
95
117
|
/** Cancel a queued or in-flight prefetch request. No-op once it has settled. */
|
|
96
118
|
function cancelAppPrefetchFetch(promise) {
|
|
97
119
|
if (promise === void 0) return;
|
|
@@ -108,16 +130,47 @@ function cancelAppPrefetchFetch(promise) {
|
|
|
108
130
|
* cap instead of waiting for a slot.
|
|
109
131
|
*
|
|
110
132
|
* No-op when the request has already started or was never queued.
|
|
133
|
+
*
|
|
134
|
+
* Also records a claim, live while `isCurrent` returns true, until the returned
|
|
135
|
+
* function releases it; see `isAppPrefetchFetchClaimed`.
|
|
111
136
|
*/
|
|
112
|
-
function promoteAppPrefetchFetch(promise) {
|
|
113
|
-
if (promise === void 0) return;
|
|
137
|
+
function promoteAppPrefetchFetch(promise, isCurrent = () => true) {
|
|
138
|
+
if (promise === void 0) return () => {};
|
|
139
|
+
let claims = appPrefetchFetchClaims.get(promise);
|
|
140
|
+
if (claims === void 0) {
|
|
141
|
+
claims = /* @__PURE__ */ new Map();
|
|
142
|
+
appPrefetchFetchClaims.set(promise, claims);
|
|
143
|
+
}
|
|
144
|
+
claims.set(isCurrent, ++appPrefetchFetchClaimSequence);
|
|
145
|
+
const release = () => {
|
|
146
|
+
claims.delete(isCurrent);
|
|
147
|
+
};
|
|
114
148
|
const runner = appPrefetchFetchControls.get(promise)?.runner;
|
|
115
|
-
if (runner === void 0) return;
|
|
149
|
+
if (runner === void 0) return release;
|
|
116
150
|
const index = defaultAppPrefetchQueue.indexOf(runner);
|
|
117
|
-
if (index === -1) return;
|
|
151
|
+
if (index === -1) return release;
|
|
118
152
|
defaultAppPrefetchQueue.splice(index, 1);
|
|
119
153
|
activeDefaultAppPrefetchRequests += 1;
|
|
120
|
-
runner();
|
|
154
|
+
runner(true);
|
|
155
|
+
return release;
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* Whether a current navigation is waiting on this prefetch. A staged prefetch
|
|
159
|
+
* (route tree, then payload) hands navigation a promise that wraps its queued
|
|
160
|
+
* requests, so promotion cannot reach them; they check this instead before
|
|
161
|
+
* dropping themselves.
|
|
162
|
+
*
|
|
163
|
+
* `claimedBy` limits this to claims made up to that `getAppPrefetchFetchClaimSequence()`.
|
|
164
|
+
*/
|
|
165
|
+
function isAppPrefetchFetchClaimed(promise, claimedBy = Infinity) {
|
|
166
|
+
const claims = promise && appPrefetchFetchClaims.get(promise);
|
|
167
|
+
if (!claims) return false;
|
|
168
|
+
for (const [isCurrent, sequence] of claims) if (sequence <= claimedBy && isCurrent()) return true;
|
|
169
|
+
return false;
|
|
170
|
+
}
|
|
171
|
+
/** The sequence number of the latest claim on any prefetch. */
|
|
172
|
+
function getAppPrefetchFetchClaimSequence() {
|
|
173
|
+
return appPrefetchFetchClaimSequence;
|
|
121
174
|
}
|
|
122
175
|
//#endregion
|
|
123
|
-
export { cancelAppPrefetchFetch, promoteAppPrefetchFetch, releaseAppPrefetchFetchSlot, scheduleAppPrefetchFetch };
|
|
176
|
+
export { cancelAppPrefetchFetch, cancelQueuedAppPrefetchFetch, getAppPrefetchFetchClaimSequence, isAppPrefetchFetchClaimed, promoteAppPrefetchFetch, releaseAppPrefetchFetchSlot, scheduleAppPrefetchFetch };
|
|
@@ -16,16 +16,27 @@ export type AppRoutePrefetchPolicy = {
|
|
|
16
16
|
* How the dynamic stale-time signal affects this prefetch. Navigation data
|
|
17
17
|
* takes it verbatim, explicit full prefetches fall back to the static window
|
|
18
18
|
* only when it is zero, and loading shells ignore it because their contents
|
|
19
|
-
* are static.
|
|
19
|
+
* are static. "learning-only" keeps a dynamic render out of navigation reuse
|
|
20
|
+
* and holds it for the static window instead.
|
|
20
21
|
*/
|
|
21
|
-
dynamicStaleTime: "verbatim" | "full-prefetch" | "ignore";
|
|
22
|
+
dynamicStaleTime: "verbatim" | "full-prefetch" | "ignore" | "learning-only";
|
|
22
23
|
fallbackTtl: "dynamic" | "static";
|
|
23
24
|
prefetchShellFirst: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The route renders dynamically (`rendersDynamically`), so the prefetch
|
|
27
|
+
* never renders its page: an href with search params fetches the loading
|
|
28
|
+
* shell instead of the page with empty search params.
|
|
29
|
+
*/
|
|
30
|
+
rendersDynamically?: true;
|
|
24
31
|
/** Fetch the route tree before the concrete page segment. */
|
|
25
32
|
requiresRouteTreePrefetch?: true;
|
|
26
33
|
shouldPrefetch: boolean;
|
|
27
34
|
};
|
|
28
35
|
export declare function canAutoPrefetchFullAppRoute(href: string): boolean;
|
|
29
|
-
|
|
36
|
+
/**
|
|
37
|
+
* `interceptionContext` is the prefetch's interception context
|
|
38
|
+
* (`getPrefetchInterceptionContext`).
|
|
39
|
+
*/
|
|
40
|
+
export declare function resolveAutoAppRoutePrefetch(href: string, interceptionContext?: string | null): AppRoutePrefetchPolicy;
|
|
30
41
|
export declare function resolveFullAppRoutePrefetch(): AppRoutePrefetchPolicy;
|
|
31
42
|
//#endregion
|