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
|
@@ -151,4 +151,5 @@ export declare function buildPagesNextDataScript(options: Pick<RenderPagesPageRe
|
|
|
151
151
|
vinext?: VinextNextData["__vinext"];
|
|
152
152
|
}): string;
|
|
153
153
|
export declare function renderPagesPageResponse(options: RenderPagesPageResponseOptions): Promise<Response>;
|
|
154
|
-
//#endregion
|
|
154
|
+
//#endregion
|
|
155
|
+
export {};
|
|
@@ -157,4 +157,5 @@ export type PagesPipelineResult = {
|
|
|
157
157
|
* runPagesRequest receives a "clean" request with basePath-stripped URL.
|
|
158
158
|
*/
|
|
159
159
|
export declare function runPagesRequest(request: Request, deps: PagesPipelineDeps): Promise<PagesPipelineResult>;
|
|
160
|
-
//#endregion
|
|
160
|
+
//#endregion
|
|
161
|
+
export {};
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { PRERENDER_REVALIDATE_HEADER } from "../utils/protocol-headers.js";
|
|
2
2
|
import { requestContextFromRequest } from "../config/request-context.js";
|
|
3
3
|
import { isExternalUrl } from "../utils/external-url.js";
|
|
4
|
-
import { addBasePathToPathname
|
|
4
|
+
import { addBasePathToPathname } from "../utils/base-path.js";
|
|
5
5
|
import { VINEXT_PRERENDER_REWRITTEN_HEADER } from "./headers.js";
|
|
6
6
|
import { methodNotAllowedResponse, notFoundStaticAssetResponse, sanitizeMethodNotAllowedHeaders } from "./http-error-responses.js";
|
|
7
7
|
import { cloneRequestWithUrl, normalizeTrailingSlash } from "./request-pipeline.js";
|
|
8
|
-
import { applyMiddlewareRequestHeaders, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest
|
|
8
|
+
import { applyMiddlewareRequestHeaders, encodeRedirectLocation, matchRedirect, matchRewrite, preserveRedirectDestinationQuery, proxyExternalRequest } from "../config/config-matchers.js";
|
|
9
9
|
import { assetPrefixPathname, isAssetPrefixBuildAsset, isNextStaticPath } from "../utils/asset-prefix.js";
|
|
10
10
|
import { normalizePathnameForRouteMatchStrict } from "../routing/utils.js";
|
|
11
11
|
import { patternToNextFormat } from "../routing/route-validation.js";
|
|
@@ -127,12 +127,11 @@ async function runPagesRequest(request, deps) {
|
|
|
127
127
|
if (configRedirects.length) {
|
|
128
128
|
const redirect = matchRedirect(requestConfigMatchPathname, configRedirects, reqCtx, basePathState, conditionalRedirectCacheability);
|
|
129
129
|
if (redirect) {
|
|
130
|
-
const
|
|
131
|
-
const location = preserveRedirectDestinationQuery(dest, deps.rawSearch ?? search, redirect.destinationQuery);
|
|
130
|
+
const location = encodeRedirectLocation(preserveRedirectDestinationQuery(redirect.destination, deps.rawSearch ?? search, redirect.destinationQuery));
|
|
132
131
|
return {
|
|
133
132
|
type: "response",
|
|
134
133
|
response: new Response(null, {
|
|
135
|
-
status: redirect.
|
|
134
|
+
status: redirect.statusCode,
|
|
136
135
|
headers: { Location: location }
|
|
137
136
|
})
|
|
138
137
|
};
|
|
@@ -26,4 +26,5 @@ export declare function isPagesClientBuildFileRequest(request: Request, env: Pag
|
|
|
26
26
|
export declare function handleRequestStage(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, dispatchResponseStage: DispatchWorkerResponseStage): Promise<Response>;
|
|
27
27
|
/** Preserve the direct single-entry Worker path without retaining it in request-only builds. */
|
|
28
28
|
export declare function handleRequestStageLocally(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, dispatchResponseStage: PagesLocalResponseStage): Promise<Response>;
|
|
29
|
-
//#endregion
|
|
29
|
+
//#endregion
|
|
30
|
+
export {};
|
|
@@ -8,4 +8,5 @@ type PagesWorkerExecutionContext = ExecutionContextLike & {
|
|
|
8
8
|
};
|
|
9
9
|
export declare function renderPagesResponse(request: Request, env: PagesWorkerEnv | undefined, platformCtx: PagesWorkerExecutionContext | undefined, props: WorkerResponseStageProps, stagedHeaders?: Headers, dispatchRequestStage?: VinextRequestStageTransport, dispatchOptions?: VinextResponseStageDispatchOptions): Promise<Response>;
|
|
10
10
|
export declare function handleResponseStage(request: Request, env: PagesWorkerEnv | undefined, ctx: PagesWorkerExecutionContext | undefined, props: WorkerResponseStageProps, dispatchRequestStage: VinextRequestStageTransport, options: VinextResponseStageDispatchOptions): Promise<Response>;
|
|
11
|
-
//#endregion
|
|
11
|
+
//#endregion
|
|
12
|
+
export {};
|
|
@@ -15,4 +15,5 @@ type AppComponent = {
|
|
|
15
15
|
} | null;
|
|
16
16
|
/** Classify loaded Pages modules after HOCs and re-exports have been evaluated. */
|
|
17
17
|
export declare function getRuntimePagesDataKind(pageModule: PagesModule, appComponent: AppComponent): RuntimePagesDataKind;
|
|
18
|
-
//#endregion
|
|
18
|
+
//#endregion
|
|
19
|
+
export {};
|
|
@@ -7,4 +7,5 @@ type PrerenderCacheLife = {
|
|
|
7
7
|
};
|
|
8
8
|
export declare function applyPrerenderCacheLifeHeader(headers: Headers, requestCacheLife: PrerenderCacheLife | null | undefined): void;
|
|
9
9
|
export declare function applyPrerenderCacheTagsHeader(headers: Headers, cacheTags: readonly string[]): void;
|
|
10
|
-
//#endregion
|
|
10
|
+
//#endregion
|
|
11
|
+
export {};
|
|
@@ -26,4 +26,5 @@ export declare function readTrustedPrerenderStateFromHeaders(headers: Headers, e
|
|
|
26
26
|
export declare function readTrustedPrerenderRouteParams(request: Request): PrerenderRouteParamsPayload | null;
|
|
27
27
|
export declare function matchPrerenderRouteParamsPayload(payload: PrerenderRouteParamsPayload | null, routePattern: string, params: PrerenderRouteParams): PrerenderRouteParamsRouteMatch | null;
|
|
28
28
|
export declare function encodePrerenderRouteParams(pattern: string, params: PrerenderRouteParams, fallbackParamNames?: readonly string[]): PrerenderRouteParamsPayload | null;
|
|
29
|
-
//#endregion
|
|
29
|
+
//#endregion
|
|
30
|
+
export {};
|
|
@@ -31,7 +31,6 @@ import { readPrerenderSecret, readServerCompress } from "../build/server-manifes
|
|
|
31
31
|
import { readTrustedPrerenderRouteParamsFromHeaders, serializePrerenderRouteParamsHeader } from "./prerender-route-params.js";
|
|
32
32
|
import { resolveClientBuildFile } from "./client-build-files.js";
|
|
33
33
|
import { registerPrerenderCloudflareLoader } from "../build/prerender-cloudflare-loader.js";
|
|
34
|
-
import { seedMemoryCacheFromPrerender } from "./seed-cache.js";
|
|
35
34
|
import { negotiateEncoding, parseAcceptedEncodings, selectContentEncoding } from "./accept-encoding.js";
|
|
36
35
|
import { COMPRESS_THRESHOLD, hasNoTransform, isCompressibleContentType, parseContentLengthHeader, resolveResponseCompression } from "./response-compression.js";
|
|
37
36
|
import { ifRangeAllowsRange, parseByteRange } from "./http-range.js";
|
|
@@ -329,6 +328,7 @@ function installClientBuildManifestGlobals(clientDir, assetBase, assetPrefix, cr
|
|
|
329
328
|
});
|
|
330
329
|
setPagesClientAssets({
|
|
331
330
|
appBootstrapPreinitModules: metadata.appBootstrapPreinitModules,
|
|
331
|
+
appRouteManifestModule: metadata.appRouteManifestModule,
|
|
332
332
|
lazyChunks: metadata.lazyChunks,
|
|
333
333
|
dynamicPreloads: metadata.dynamicPreloads,
|
|
334
334
|
crossOrigin
|
|
@@ -904,6 +904,7 @@ function waitForNodeResponseCompletion(res) {
|
|
|
904
904
|
*/
|
|
905
905
|
async function startProdServer(options = {}) {
|
|
906
906
|
installSocketErrorBackstop({ runningServer: options.purpose !== "prerender" });
|
|
907
|
+
if (options.purpose !== "prerender" && !process.env.NODE_ENV) Reflect.set(process.env, "NODE_ENV", "production");
|
|
907
908
|
const { port = process.env.PORT ? parseInt(process.env.PORT) : 3e3, host = "0.0.0.0", outDir = path.resolve("dist"), rscEntryPath: explicitRscEntryPath, serverDir: explicitServerDir, serverEntryPath: explicitServerEntryPath, noCompression = false, purpose, silent = false } = options;
|
|
908
909
|
if (purpose === "prerender") registerPrerenderCloudflareLoader();
|
|
909
910
|
const compress = !noCompression;
|
|
@@ -1007,15 +1008,19 @@ function resolveAppRouterHandler(entry) {
|
|
|
1007
1008
|
console.error("[vinext] App Router entry must export either a default handler function or a Worker-style default export with fetch()");
|
|
1008
1009
|
process.exit(1);
|
|
1009
1010
|
}
|
|
1011
|
+
async function seedMemoryCacheFromPrerenderFallback(serverDir) {
|
|
1012
|
+
const { seedMemoryCacheFromPrerender } = await import("./seed-cache.js");
|
|
1013
|
+
return seedMemoryCacheFromPrerender(serverDir);
|
|
1014
|
+
}
|
|
1010
1015
|
function isAppRouterPrerenderSeederExport(value) {
|
|
1011
1016
|
return typeof value === "function";
|
|
1012
1017
|
}
|
|
1013
1018
|
function resolveAppRouterPrerenderSeeder(entryModule) {
|
|
1014
|
-
if (typeof entryModule !== "object" || entryModule === null) return
|
|
1019
|
+
if (typeof entryModule !== "object" || entryModule === null) return seedMemoryCacheFromPrerenderFallback;
|
|
1015
1020
|
const seedExport = Object.getOwnPropertyDescriptor(entryModule, "seedMemoryCacheFromPrerender")?.value;
|
|
1016
1021
|
if (!isAppRouterPrerenderSeederExport(seedExport)) {
|
|
1017
1022
|
if (process.env.NEXT_PRIVATE_DEBUG_CACHE) console.debug("[vinext] ISR: using fallback prerender cache seeder");
|
|
1018
|
-
return
|
|
1023
|
+
return seedMemoryCacheFromPrerenderFallback;
|
|
1019
1024
|
}
|
|
1020
1025
|
if (process.env.NEXT_PRIVATE_DEBUG_CACHE) console.debug("[vinext] ISR: using App Router entry prerender cache seeder");
|
|
1021
1026
|
return async (serverDir) => {
|
|
@@ -1091,6 +1096,7 @@ function installPagesClientAssets(options) {
|
|
|
1091
1096
|
setPagesClientAssets({
|
|
1092
1097
|
clientEntry: metadata.clientEntryFile,
|
|
1093
1098
|
appBootstrapPreinitModules: metadata.appBootstrapPreinitModules,
|
|
1099
|
+
appRouteManifestModule: metadata.appRouteManifestModule,
|
|
1094
1100
|
ssrManifest: Object.keys(ssrManifest).length > 0 ? ssrManifest : void 0,
|
|
1095
1101
|
sharedChunks: metadata.sharedChunks,
|
|
1096
1102
|
cssGraph: metadata.cssGraph,
|
|
@@ -19,4 +19,5 @@ export declare function clearFrameworkRequestError(response: Response): Response
|
|
|
19
19
|
export declare function attachFrameworkRequestError(response: Response, error: unknown): Response;
|
|
20
20
|
export declare function consumeFrameworkRequestRoute(response: Response): Response;
|
|
21
21
|
export declare function traceFrameworkRequest<T>(input: RequestTraceInput<T>): Promise<T>;
|
|
22
|
-
//#endregion
|
|
22
|
+
//#endregion
|
|
23
|
+
export {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { getOrCreateAls } from "../shims/internal/als-registry.js";
|
|
2
2
|
import { isFullyBufferedBody, markFullyBufferedBody, preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
|
|
3
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
3
4
|
import { VINEXT_TRACE_BUFFERED_BODY_HEADER, VINEXT_TRACE_ERROR_HEADER, VINEXT_TRACE_ROUTE_HEADER } from "./headers.js";
|
|
4
5
|
import { frameworkTracer } from "./tracer.js";
|
|
5
|
-
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
6
6
|
import { getResponseStartCompletion } from "./response-start-tracing.js";
|
|
7
7
|
//#region src/server/request-tracing.ts
|
|
8
8
|
const activeRequestTrace = getOrCreateAls("vinext.requestTracing.als");
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { preserveFullyBufferedBodyMetadata } from "./fully-buffered-response.js";
|
|
2
|
+
import { observeStreamConsumption } from "./defer-until-stream-consumed.js";
|
|
2
3
|
import { frameworkTracer } from "./tracer.js";
|
|
3
4
|
import { copyLinkHeaderProvenance } from "./app-response-header-provenance.js";
|
|
4
5
|
//#region src/server/response-start-tracing.ts
|
|
@@ -13,37 +14,14 @@ function createResponseStartSpanDescriptor() {
|
|
|
13
14
|
};
|
|
14
15
|
}
|
|
15
16
|
function traceResponseStartStream(stream, onSettled) {
|
|
16
|
-
const reader = stream.getReader();
|
|
17
17
|
const runInTraceContext = frameworkTracer.captureActiveContext();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
const result = await reader.read();
|
|
23
|
-
if (result.done) {
|
|
24
|
-
onSettled();
|
|
25
|
-
controller.close();
|
|
26
|
-
return;
|
|
27
|
-
}
|
|
28
|
-
if (!started) {
|
|
29
|
-
started = true;
|
|
30
|
-
runInTraceContext(() => frameworkTracer.trace(createResponseStartSpanDescriptor(), () => void 0));
|
|
31
|
-
onSettled();
|
|
32
|
-
}
|
|
33
|
-
controller.enqueue(result.value);
|
|
34
|
-
} catch (error) {
|
|
35
|
-
onSettled();
|
|
36
|
-
controller.error(error);
|
|
37
|
-
}
|
|
18
|
+
return observeStreamConsumption(stream, {
|
|
19
|
+
onStart() {
|
|
20
|
+
runInTraceContext(() => frameworkTracer.trace(createResponseStartSpanDescriptor(), () => void 0));
|
|
21
|
+
onSettled();
|
|
38
22
|
},
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
await reader.cancel(reason);
|
|
42
|
-
} finally {
|
|
43
|
-
onSettled();
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
}, { highWaterMark: 0 });
|
|
23
|
+
onFlush: onSettled
|
|
24
|
+
});
|
|
47
25
|
}
|
|
48
26
|
function traceResponseStartWithCompletion(response) {
|
|
49
27
|
const existing = tracedResponses.get(response);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { deferUntilStreamConsumed } from "./defer-until-stream-consumed.js";
|
|
2
|
+
import { createRenderStreamCancellation } from "./app-render-abort-error.js";
|
|
3
|
+
//#region src/server/rsc-render-stream.ts
|
|
4
|
+
const noop = () => {};
|
|
5
|
+
function createRscRenderer(render) {
|
|
6
|
+
return (model, options) => {
|
|
7
|
+
const cancellation = createRenderStreamCancellation();
|
|
8
|
+
return deferUntilStreamConsumed(render(model, ignoreCancellationErrors(options, cancellation)), noop, void 0, cancellation.record);
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
/** A consumer cancelling the payload is not a render failure. */
|
|
12
|
+
function ignoreCancellationErrors(options, cancellation) {
|
|
13
|
+
if (!options || typeof options !== "object") return options;
|
|
14
|
+
const onError = Reflect.get(options, "onError");
|
|
15
|
+
if (typeof onError !== "function") return options;
|
|
16
|
+
return {
|
|
17
|
+
...options,
|
|
18
|
+
onError(error, ...rest) {
|
|
19
|
+
if (cancellation.isReason(error)) return void 0;
|
|
20
|
+
return Reflect.apply(onError, options, [error, ...rest]);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { createRscRenderer };
|
|
@@ -30,4 +30,5 @@ type PrerenderCacheSeedOptions = {
|
|
|
30
30
|
* @returns The number of routes seeded (0 if no manifest or no renderable routes).
|
|
31
31
|
*/
|
|
32
32
|
export declare function seedMemoryCacheFromPrerender(serverDir: string, options?: PrerenderCacheSeedOptions): Promise<number>;
|
|
33
|
-
//#endregion
|
|
33
|
+
//#endregion
|
|
34
|
+
export {};
|
|
@@ -2,8 +2,8 @@ import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
|
2
2
|
import { appIsrCacheKey, appIsrFallbackShellKey, isrSet, isrSetPrerenderedAppPage } from "./isr-cache.js";
|
|
3
3
|
import { addPregeneratedConcretePath, addPregeneratedRoute, clearPregeneratedConcretePaths, normalizePregeneratedPathname } from "./pregenerated-concrete-paths.js";
|
|
4
4
|
import { getRenderedAppRoutes, getRenderedMetadataRoutes, isFallbackShellArtifactPath, readPrerenderManifest } from "./prerender-manifest.js";
|
|
5
|
-
import { buildAppPageCacheTags, buildAppRouteCacheTags } from "./app-page-cache.js";
|
|
6
5
|
import { getAppRouteOutputPath, getOutputPath, getRscOutputPath } from "../utils/prerender-output-paths.js";
|
|
6
|
+
import { buildAppPageCacheTags, buildAppRouteCacheTags } from "./app-page-cache.js";
|
|
7
7
|
import fs from "node:fs";
|
|
8
8
|
//#region src/server/seed-cache.ts
|
|
9
9
|
/**
|
|
@@ -10,4 +10,5 @@ type StaticLayoutClientReuseProofInput = Readonly<{
|
|
|
10
10
|
export declare function createStaticLayoutClientReuseRouteId(layoutId: string): string;
|
|
11
11
|
export declare function createStaticLayoutClientReusePayloadHash(input: StaticLayoutClientReuseProofInput): string;
|
|
12
12
|
export declare function createStaticLayoutClientReuseArtifactCompatibility(input: StaticLayoutClientReuseProofInput): ArtifactCompatibilityEnvelope;
|
|
13
|
-
//#endregion
|
|
13
|
+
//#endregion
|
|
14
|
+
export {};
|
|
@@ -9,4 +9,5 @@ type PlatformExecutionContext = Partial<ExecutionContextLike> & VinextRequestSta
|
|
|
9
9
|
* on the normal header-scrubbing path.
|
|
10
10
|
*/
|
|
11
11
|
export declare function createWorkerRevalidationContext(base: PlatformExecutionContext | undefined, handleInternalRequest: (request: Request, ctx: ExecutionContextLike) => Promise<Response>, defaultHostRuntime?: "node" | "worker"): ExecutionContextLike;
|
|
12
|
-
//#endregion
|
|
12
|
+
//#endregion
|
|
13
|
+
export {};
|
|
@@ -40,4 +40,5 @@ export type WorkerResponseStageProps = PagesApiResponseStageProps | PagesPageRes
|
|
|
40
40
|
*/
|
|
41
41
|
export type DispatchWorkerResponseStage = VinextResponseStageTransport<WorkerResponseStageProps>;
|
|
42
42
|
export declare function isPagesResponseStageProps(value: unknown): value is WorkerResponseStageProps;
|
|
43
|
-
//#endregion
|
|
43
|
+
//#endregion
|
|
44
|
+
export {};
|
package/dist/shims/app.d.ts
CHANGED
|
@@ -12,4 +12,5 @@ export declare function registerCachedFunction<TArgs extends unknown[], TResult>
|
|
|
12
12
|
}): (...args: TArgs) => Promise<TResult>;
|
|
13
13
|
/** Replay the persisted payload without re-reading or re-encoding caller objects. */
|
|
14
14
|
export declare function invokeCacheFunction(invocation: VinextCacheFunctionInvocation, loadServerAction: (id: string) => Promise<unknown>): Promise<void>;
|
|
15
|
-
//#endregion
|
|
15
|
+
//#endregion
|
|
16
|
+
export {};
|
|
@@ -96,7 +96,7 @@ type MemoryCacheHandlerOptions = Pick<CacheHandlerContext, "maxMemoryCacheSize">
|
|
|
96
96
|
};
|
|
97
97
|
export declare class MemoryCacheHandler implements CacheHandler {
|
|
98
98
|
private store;
|
|
99
|
-
private
|
|
99
|
+
private tagsManifest;
|
|
100
100
|
private readonly maxMemoryCacheSize;
|
|
101
101
|
private currentMemoryCacheSize;
|
|
102
102
|
constructor(options?: number | MemoryCacheHandlerOptions);
|
|
@@ -106,7 +106,11 @@ export declare class MemoryCacheHandler implements CacheHandler {
|
|
|
106
106
|
private evictLeastRecentlyUsed;
|
|
107
107
|
get(key: string, ctx?: Record<string, unknown>): Promise<CacheHandlerValue | null>;
|
|
108
108
|
set(key: string, data: IncrementalCacheValue | null, ctx?: Record<string, unknown>): Promise<void>;
|
|
109
|
-
revalidateTag(tags: string | string[]
|
|
109
|
+
revalidateTag(tags: string | string[], durations?: {
|
|
110
|
+
expire?: number;
|
|
111
|
+
}): Promise<void>;
|
|
112
|
+
private isTagExpired;
|
|
113
|
+
private isTagStale;
|
|
110
114
|
resetRequestCache(): void;
|
|
111
115
|
}
|
|
112
116
|
export declare function configureMemoryCacheHandler(options?: MemoryCacheHandlerOptions): void;
|
|
@@ -121,4 +125,5 @@ export declare function registerLazyDataCacheHandler(load: () => Promise<void>):
|
|
|
121
125
|
export declare function getDataCacheHandler(): CacheHandler;
|
|
122
126
|
export declare function setCacheHandler(handler: CacheHandler): void;
|
|
123
127
|
export declare function getCacheHandler(): CacheHandler;
|
|
124
|
-
//#endregion
|
|
128
|
+
//#endregion
|
|
129
|
+
export {};
|
|
@@ -48,7 +48,7 @@ function readPositiveNumberField(ctx, field) {
|
|
|
48
48
|
}
|
|
49
49
|
var MemoryCacheHandler = class {
|
|
50
50
|
store = /* @__PURE__ */ new Map();
|
|
51
|
-
|
|
51
|
+
tagsManifest = /* @__PURE__ */ new Map();
|
|
52
52
|
maxMemoryCacheSize;
|
|
53
53
|
currentMemoryCacheSize = 0;
|
|
54
54
|
constructor(options) {
|
|
@@ -77,19 +77,20 @@ var MemoryCacheHandler = class {
|
|
|
77
77
|
async get(key, ctx) {
|
|
78
78
|
const entry = this.store.get(key);
|
|
79
79
|
if (!entry) return null;
|
|
80
|
+
const now = Date.now();
|
|
81
|
+
let hasStaleTag = false;
|
|
80
82
|
for (const tag of entry.tags) {
|
|
81
|
-
|
|
82
|
-
if (revalidatedAt && revalidatedAt >= entry.lastModified) {
|
|
83
|
+
if (this.isTagExpired(tag, entry.lastModified, now)) {
|
|
83
84
|
this.deleteEntry(key);
|
|
84
85
|
return null;
|
|
85
86
|
}
|
|
87
|
+
hasStaleTag ||= this.isTagStale(tag, entry.lastModified);
|
|
86
88
|
}
|
|
87
89
|
for (const tag of readStringArrayField(ctx, "softTags")) {
|
|
88
|
-
|
|
89
|
-
|
|
90
|
+
if (this.isTagExpired(tag, entry.lastModified, now)) return null;
|
|
91
|
+
hasStaleTag ||= this.isTagStale(tag, entry.lastModified);
|
|
90
92
|
}
|
|
91
93
|
this.touchEntry(key, entry);
|
|
92
|
-
const now = Date.now();
|
|
93
94
|
if (entry.expireAt !== null && now > entry.expireAt) return {
|
|
94
95
|
lastModified: entry.lastModified,
|
|
95
96
|
value: entry.value,
|
|
@@ -98,7 +99,7 @@ var MemoryCacheHandler = class {
|
|
|
98
99
|
};
|
|
99
100
|
const requestedRevalidate = readPositiveNumberField(ctx, "revalidate");
|
|
100
101
|
const requestedRevalidateAt = requestedRevalidate === void 0 ? null : entry.lastModified + requestedRevalidate * 1e3;
|
|
101
|
-
if (entry.revalidateAt !== null && now > entry.revalidateAt || requestedRevalidateAt !== null && now > requestedRevalidateAt) return {
|
|
102
|
+
if (hasStaleTag || entry.revalidateAt !== null && now > entry.revalidateAt || requestedRevalidateAt !== null && now > requestedRevalidateAt) return {
|
|
102
103
|
lastModified: entry.lastModified,
|
|
103
104
|
value: entry.value,
|
|
104
105
|
cacheState: "stale",
|
|
@@ -148,10 +149,29 @@ var MemoryCacheHandler = class {
|
|
|
148
149
|
this.currentMemoryCacheSize += entrySize;
|
|
149
150
|
this.evictLeastRecentlyUsed();
|
|
150
151
|
}
|
|
151
|
-
async revalidateTag(tags) {
|
|
152
|
+
async revalidateTag(tags, durations) {
|
|
152
153
|
const tagList = Array.isArray(tags) ? tags : [tags];
|
|
153
154
|
const now = Date.now();
|
|
154
|
-
for (const tag of tagList)
|
|
155
|
+
for (const tag of tagList) {
|
|
156
|
+
const existing = this.tagsManifest.get(tag) ?? {};
|
|
157
|
+
if (durations) this.tagsManifest.set(tag, {
|
|
158
|
+
...existing,
|
|
159
|
+
stale: now,
|
|
160
|
+
...durations.expire === void 0 ? {} : { expired: now + durations.expire * 1e3 }
|
|
161
|
+
});
|
|
162
|
+
else this.tagsManifest.set(tag, {
|
|
163
|
+
...existing,
|
|
164
|
+
expired: now
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
isTagExpired(tag, lastModified, now) {
|
|
169
|
+
const expired = this.tagsManifest.get(tag)?.expired;
|
|
170
|
+
return expired !== void 0 && expired <= now && expired >= lastModified;
|
|
171
|
+
}
|
|
172
|
+
isTagStale(tag, lastModified) {
|
|
173
|
+
const stale = this.tagsManifest.get(tag)?.stale;
|
|
174
|
+
return stale !== void 0 && stale > lastModified;
|
|
155
175
|
}
|
|
156
176
|
resetRequestCache() {}
|
|
157
177
|
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
//#region src/shims/caught-not-found-boundaries.d.ts
|
|
3
|
+
export declare const CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL = "__VINEXT_CAUGHT_NOT_FOUND__";
|
|
4
|
+
/** The boundaries that caught, and those of them the document rendered. */
|
|
5
|
+
export type CaughtNotFoundBoundaries = {
|
|
6
|
+
ids: ReadonlySet<string>;
|
|
7
|
+
rendered: Set<string>;
|
|
8
|
+
};
|
|
9
|
+
export declare const CaughtNotFoundBoundariesContext: React.Context<CaughtNotFoundBoundaries | null> | null;
|
|
10
|
+
export declare function withCaughtNotFoundBoundaries(boundaries: CaughtNotFoundBoundaries, children: React.ReactElement): React.ReactElement;
|
|
11
|
+
/** Whether the boundary with this id caught a notFound() in the document. */
|
|
12
|
+
export declare function useCaughtNotFoundBoundary(id: string | undefined): boolean;
|
|
13
|
+
/** A hydrated boundary consumes its id, so a later mount renders its children. */
|
|
14
|
+
export declare function consumeCaughtNotFoundBoundary(id: string | undefined): void;
|
|
15
|
+
//#endregion
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
//#region src/shims/caught-not-found-boundaries.ts
|
|
3
|
+
/**
|
|
4
|
+
* The parallel slot not-found boundaries that caught a slot's notFound() in
|
|
5
|
+
* the document. Fizz has no error boundaries, so a slot page's notFound()
|
|
6
|
+
* rejects the shell; the App Router SSR entry then renders the document again
|
|
7
|
+
* from the same Flight payload, with the boundaries that would have caught it
|
|
8
|
+
* on the client rendering their fallback (Next.js renders them in the browser
|
|
9
|
+
* after an empty error shell). The browser reads the same ids from
|
|
10
|
+
* `self.__VINEXT_CAUGHT_NOT_FOUND__`, so those boundaries hydrate caught. Only
|
|
11
|
+
* the boundaries the document rendered are sent, since one inside another
|
|
12
|
+
* caught boundary never mounts to consume its id.
|
|
13
|
+
*
|
|
14
|
+
* Stored on a global symbol so duplicate module instances share one context,
|
|
15
|
+
* and null in react-server, which has no createContext.
|
|
16
|
+
*/
|
|
17
|
+
const CAUGHT_NOT_FOUND_BOUNDARIES_CONTEXT_KEY = Symbol.for("vinext.caughtNotFoundBoundariesContext");
|
|
18
|
+
const CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL = "__VINEXT_CAUGHT_NOT_FOUND__";
|
|
19
|
+
function getCaughtNotFoundBoundariesContext() {
|
|
20
|
+
if (typeof React.createContext !== "function") return null;
|
|
21
|
+
const globalState = globalThis;
|
|
22
|
+
globalState[CAUGHT_NOT_FOUND_BOUNDARIES_CONTEXT_KEY] ??= React.createContext(null);
|
|
23
|
+
return globalState[CAUGHT_NOT_FOUND_BOUNDARIES_CONTEXT_KEY];
|
|
24
|
+
}
|
|
25
|
+
const CaughtNotFoundBoundariesContext = getCaughtNotFoundBoundariesContext();
|
|
26
|
+
function withCaughtNotFoundBoundaries(boundaries, children) {
|
|
27
|
+
return CaughtNotFoundBoundariesContext ? React.createElement(CaughtNotFoundBoundariesContext.Provider, { value: boundaries }, children) : children;
|
|
28
|
+
}
|
|
29
|
+
/** Whether the boundary with this id caught a notFound() in the document. */
|
|
30
|
+
function useCaughtNotFoundBoundary(id) {
|
|
31
|
+
const serverBoundaries = React.useContext(CaughtNotFoundBoundariesContext);
|
|
32
|
+
if (id === void 0) return false;
|
|
33
|
+
if (typeof window === "undefined") {
|
|
34
|
+
if (serverBoundaries?.ids.has(id) !== true) return false;
|
|
35
|
+
serverBoundaries.rendered.add(id);
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
return globalThis[CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL]?.includes(id) === true;
|
|
39
|
+
}
|
|
40
|
+
/** A hydrated boundary consumes its id, so a later mount renders its children. */
|
|
41
|
+
function consumeCaughtNotFoundBoundary(id) {
|
|
42
|
+
if (id === void 0 || typeof window === "undefined") return;
|
|
43
|
+
const ids = globalThis[CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL];
|
|
44
|
+
const index = ids?.indexOf(id) ?? -1;
|
|
45
|
+
if (index !== -1) ids.splice(index, 1);
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { CAUGHT_NOT_FOUND_BOUNDARIES_GLOBAL, CaughtNotFoundBoundariesContext, consumeCaughtNotFoundBoundary, useCaughtNotFoundBoundary, withCaughtNotFoundBoundaries };
|
|
@@ -3,7 +3,8 @@ import { detectDomainLocale, getLocalePathPrefix } from "../utils/domain-locale.
|
|
|
3
3
|
//#region src/shims/client-locale.ts
|
|
4
4
|
function getCurrentBrowserLocale({ basePath, domainLocales, hostname }) {
|
|
5
5
|
if (typeof window === "undefined") return void 0;
|
|
6
|
-
const
|
|
6
|
+
const locales = window.__VINEXT_LOCALES__;
|
|
7
|
+
const pathnameLocale = locales?.length ? getLocalePathPrefix(stripBasePath(window.location.pathname, basePath), locales) : void 0;
|
|
7
8
|
if (pathnameLocale) return pathnameLocale;
|
|
8
9
|
return detectDomainLocale(domainLocales, hostname ?? void 0)?.defaultLocale ?? window.__VINEXT_LOCALE__ ?? window.__VINEXT_DEFAULT_LOCALE__;
|
|
9
10
|
}
|
|
@@ -21,4 +21,5 @@ export type ClientPageRootProps = {
|
|
|
21
21
|
*/
|
|
22
22
|
export declare function createClientPageSearchParams(searchParams: URLSearchParams | null | undefined): Promise<ClientPageSearchParams>;
|
|
23
23
|
export declare function ClientPageRoot({ Component, pageProps, emptySearchParams }: ClientPageRootProps): import("react").ReactElement<Record<string, unknown>, string | import("react").JSXElementConstructor<any>>;
|
|
24
|
-
//#endregion
|
|
24
|
+
//#endregion
|
|
25
|
+
export {};
|
package/dist/shims/config.d.ts
CHANGED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { HTTPAccessErrorFallback } from "./http-access-error-fallback.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
//#region src/shims/default-forbidden.tsx
|
|
4
|
+
/**
|
|
5
|
+
* Ported from Next.js's built-in default forbidden component:
|
|
6
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/client/components/builtin/forbidden.tsx
|
|
7
|
+
*
|
|
8
|
+
* Rendered when `forbidden()` is called and no `app/forbidden.tsx` boundary
|
|
9
|
+
* catches it.
|
|
10
|
+
*/
|
|
11
|
+
function DefaultForbidden() {
|
|
12
|
+
return React.createElement(HTTPAccessErrorFallback, {
|
|
13
|
+
status: 403,
|
|
14
|
+
message: "This page could not be accessed."
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { DefaultForbidden as default };
|
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
//#region src/shims/default-not-found.d.ts
|
|
3
|
-
/**
|
|
4
|
-
* Mirrors `<HTTPAccessErrorFallback status={404} message="This page could not be found." />`
|
|
5
|
-
* from Next.js. Kept in sync with the upstream component's structure so HTML
|
|
6
|
-
* snapshot diffs between Next.js and vinext stay minimal.
|
|
7
|
-
*/
|
|
8
3
|
export default function DefaultNotFound(): React.ReactElement;
|
|
9
4
|
//#endregion
|