vinext 1.2.1 → 1.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +12 -9
- package/dist/_virtual/_rolldown/runtime.js +1 -1
- package/dist/build/action-owner-manifest.d.ts +3 -2
- package/dist/build/action-owner-manifest.js +18 -2
- package/dist/build/app-page-static-eligibility.d.ts +17 -1
- package/dist/build/app-page-static-eligibility.js +80 -13
- package/dist/build/clean-output.d.ts +2 -1
- package/dist/build/client-build-config.d.ts +77 -6
- package/dist/build/client-build-config.js +176 -12
- package/dist/build/client-reference-async.d.ts +48 -0
- package/dist/build/client-reference-async.js +123 -0
- package/dist/build/client-reference-chunks.d.ts +32 -0
- package/dist/build/client-reference-chunks.js +111 -0
- package/dist/build/client-reference-groups.d.ts +171 -0
- package/dist/build/client-reference-groups.js +572 -0
- package/dist/build/css-url-assets.d.ts +2 -1
- package/dist/build/google-fonts/fallback-metrics.d.ts +2 -1
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +1 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +17 -4
- package/dist/build/google-fonts/font-metadata.d.ts +2 -1
- package/dist/build/google-fonts/validate.d.ts +2 -1
- package/dist/build/inline-css.d.ts +2 -1
- package/dist/build/layout-classification.d.ts +2 -1
- package/dist/build/module-dependency-cache.d.ts +33 -1
- package/dist/build/module-dependency-cache.js +51 -1
- package/dist/build/next-client-runtime-manifests.d.ts +12 -2
- package/dist/build/next-client-runtime-manifests.js +19 -4
- package/dist/build/nitro-public-files.d.ts +24 -0
- package/dist/build/nitro-public-files.js +60 -0
- package/dist/build/pages-client-assets-module.js +1 -1
- package/dist/build/precompress.d.ts +2 -1
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-paths.d.ts +2 -1
- package/dist/build/prerender-paths.js +5 -2
- package/dist/build/prerender-phase.d.ts +2 -1
- package/dist/build/prerender-server-pool.js +1 -1
- package/dist/build/prerender.d.ts +3 -2
- package/dist/build/prerender.js +5 -4
- package/dist/build/report.d.ts +2 -1
- package/dist/build/route-classification-injector.d.ts +2 -1
- package/dist/build/route-classification-manifest.d.ts +2 -1
- package/dist/build/run-prerender.d.ts +2 -1
- package/dist/build/server-actions-encryption-key.d.ts +24 -0
- package/dist/build/server-actions-encryption-key.js +101 -0
- package/dist/build/ssr-manifest.d.ts +3 -0
- package/dist/build/ssr-manifest.js +34 -2
- package/dist/build/standalone.d.ts +2 -1
- package/dist/cache/cache-adapters-virtual.d.ts +2 -1
- package/dist/cache.js +1 -2
- package/dist/check.d.ts +2 -1
- package/dist/check.js +4 -0
- package/dist/cli-args.d.ts +2 -1
- package/dist/cli.js +2 -0
- package/dist/client/client-redirect-matcher.js +2 -1
- package/dist/client/client-redirects.d.ts +4 -3
- package/dist/client/client-redirects.js +2 -1
- package/dist/client/client-rewrite-params.d.ts +9 -0
- package/dist/client/client-rewrite-params.js +20 -0
- package/dist/client/client-rewrites.d.ts +2 -1
- package/dist/client/dev-error-overlay-store.d.ts +2 -1
- package/dist/client/dev-error-overlay.js +2 -1
- package/dist/client/index.js +1 -2
- package/dist/client/instrumentation-client-state.js +5 -5
- package/dist/client/navigation-runtime.d.ts +28 -3
- package/dist/client/navigation-runtime.js +42 -11
- package/dist/client/pages-router-link-navigation.d.ts +2 -1
- package/dist/client/vinext-next-data.d.ts +25 -2
- package/dist/client/window-next.d.ts +2 -1
- package/dist/config/config-matchers.d.ts +27 -41
- package/dist/config/config-matchers.js +293 -270
- package/dist/config/config-source.d.ts +34 -0
- package/dist/config/config-source.js +141 -0
- package/dist/config/dotenv.d.ts +2 -1
- package/dist/config/header-params.d.ts +29 -0
- package/dist/config/header-params.js +106 -0
- package/dist/config/next-config.d.ts +20 -6
- package/dist/config/next-config.js +149 -11
- package/dist/config/tsconfig-paths.d.ts +2 -1
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/detector.js +23 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/index.js +2 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/lookup.js +25 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/bmp.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/cur.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/dds.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/gif.js +12 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/heif.js +55 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/icns.js +76 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ico.js +39 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/index.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/j2c.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jp2.js +21 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jpg.js +71 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl-stream.js +42 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/jxl.js +46 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/ktx.js +19 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/png.js +28 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/pnm.js +54 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/psd.js +11 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/svg.js +79 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tga.js +15 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/tiff.js +96 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/utils.js +53 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/types/webp.js +45 -0
- package/dist/deps/.pnpm/image-size@2.0.4/deps/image-size/dist/esm/utils/bit-reader.js +38 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +2 -2
- package/dist/entries/app-browser-entry.d.ts +34 -6
- package/dist/entries/app-browser-entry.js +103 -40
- package/dist/entries/app-rsc-entry.d.ts +4 -1
- package/dist/entries/app-rsc-entry.js +131 -66
- package/dist/entries/app-rsc-manifest.d.ts +12 -1
- package/dist/entries/app-rsc-manifest.js +73 -1
- package/dist/entries/app-ssr-entry.d.ts +4 -1
- package/dist/entries/app-ssr-entry.js +9 -2
- package/dist/entries/pages-client-entry.d.ts +1 -0
- package/dist/entries/pages-client-entry.js +6 -6
- package/dist/entries/pages-entry-helpers.js +1 -2
- package/dist/entries/pages-server-entry.d.ts +2 -1
- package/dist/entries/pages-server-entry.js +18 -15
- package/dist/entries/runtime-entry-module.d.ts +1 -0
- package/dist/entries/runtime-entry-module.js +4 -1
- package/dist/image/image-adapters-virtual.d.ts +2 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.js +340 -116
- package/dist/init.js +17 -0
- package/dist/plugins/client-compile-hints.d.ts +30 -0
- package/dist/plugins/client-compile-hints.js +88 -0
- package/dist/plugins/client-reference-dedup.d.ts +2 -1
- package/dist/plugins/cloudflare-dev-module-urls.d.ts +2 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -1
- package/dist/plugins/dynamic-preload-metadata.js +1 -1
- package/dist/plugins/environment.d.ts +2 -1
- package/dist/plugins/fonts.js +9 -12
- package/dist/plugins/ignore-dynamic-requests.d.ts +2 -1
- package/dist/plugins/import-meta-url.d.ts +2 -1
- package/dist/plugins/og-assets.d.ts +2 -1
- package/dist/plugins/og-assets.js +2 -3
- package/dist/plugins/optimize-imports.d.ts +27 -3
- package/dist/plugins/optimize-imports.js +106 -20
- package/dist/plugins/pages-node-externals.d.ts +2 -1
- package/dist/plugins/remove-console.d.ts +2 -1
- package/dist/plugins/require-condition-resolution.d.ts +2 -1
- package/dist/plugins/rsc-client-reference-loaders.d.ts +53 -1
- package/dist/plugins/rsc-client-reference-loaders.js +447 -27
- package/dist/plugins/rsc-client-shim-excludes.js +2 -0
- package/dist/plugins/sass.d.ts +2 -1
- package/dist/plugins/strip-server-exports.d.ts +2 -1
- package/dist/plugins/styled-jsx.d.ts +2 -1
- package/dist/plugins/transform-result.d.ts +2 -1
- package/dist/plugins/typeof-window.d.ts +2 -1
- package/dist/plugins/use-cache-callable.d.ts +5 -0
- package/dist/plugins/use-cache-callable.js +30 -8
- package/dist/plugins/worker-image-imports.d.ts +1 -0
- package/dist/plugins/worker-image-imports.js +2 -2
- package/dist/plugins/worker-use-server.d.ts +2 -1
- package/dist/routing/app-route-graph.d.ts +41 -1
- package/dist/routing/app-route-graph.js +122 -50
- package/dist/routing/browser-route-manifest.d.ts +44 -0
- package/dist/routing/browser-route-manifest.js +195 -0
- package/dist/routing/hashed-route-patterns.d.ts +4 -0
- package/dist/routing/hashed-route-patterns.js +22 -0
- package/dist/routing/optimistic-route-trie.d.ts +28 -0
- package/dist/routing/optimistic-route-trie.js +102 -0
- package/dist/routing/route-matching.d.ts +2 -1
- package/dist/routing/route-pattern.d.ts +2 -1
- package/dist/routing/route-validation.d.ts +6 -1
- package/dist/routing/route-validation.js +26 -10
- package/dist/server/accept-encoding.d.ts +2 -1
- package/dist/server/app-action-forwarding.d.ts +10 -1
- package/dist/server/app-action-forwarding.js +15 -1
- package/dist/server/app-bfcache-identity.d.ts +2 -1
- package/dist/server/app-browser-action-result.d.ts +2 -1
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -1
- package/dist/server/app-browser-entry.js +175 -64
- package/dist/server/app-browser-error.d.ts +5 -2
- package/dist/server/app-browser-error.js +7 -2
- package/dist/server/app-browser-history-controller.d.ts +2 -1
- package/dist/server/app-browser-hydration.d.ts +2 -1
- package/dist/server/app-browser-interception-context.d.ts +4 -3
- package/dist/server/app-browser-mpa-navigation.d.ts +1 -0
- package/dist/server/app-browser-mpa-navigation.js +6 -5
- package/dist/server/app-browser-navigation-controller.d.ts +17 -6
- package/dist/server/app-browser-navigation-controller.js +103 -36
- package/dist/server/app-browser-popstate.d.ts +2 -1
- package/dist/server/app-browser-rsc-redirect.d.ts +2 -1
- package/dist/server/app-browser-server-action-client.d.ts +2 -1
- package/dist/server/app-browser-state.d.ts +2 -2
- package/dist/server/app-browser-state.js +1 -1
- package/dist/server/app-browser-stream.d.ts +2 -1
- package/dist/server/app-browser-visible-commit.d.ts +6 -5
- package/dist/server/app-client-reference-manifest.d.ts +31 -0
- package/dist/server/app-client-reference-manifest.js +46 -0
- package/dist/server/app-client-reference-preloader.d.ts +45 -2
- package/dist/server/app-client-reference-preloader.js +48 -10
- package/dist/server/app-elements-wire.d.ts +2 -1
- package/dist/server/app-elements.d.ts +2 -0
- package/dist/server/app-elements.js +3 -1
- package/dist/server/app-fallback-renderer.d.ts +9 -2
- package/dist/server/app-fallback-renderer.js +6 -2
- package/dist/server/app-history-state.d.ts +2 -1
- package/dist/server/app-inline-css-client.d.ts +2 -1
- package/dist/server/app-layout-param-observation.d.ts +2 -1
- package/dist/server/app-metadata-tracing.d.ts +2 -1
- package/dist/server/app-middleware.d.ts +6 -0
- package/dist/server/app-middleware.js +8 -10
- package/dist/server/app-optimistic-routing.d.ts +26 -11
- package/dist/server/app-optimistic-routing.js +38 -96
- package/dist/server/app-page-boundary-render.d.ts +20 -2
- package/dist/server/app-page-boundary-render.js +229 -39
- package/dist/server/app-page-boundary.d.ts +34 -5
- package/dist/server/app-page-boundary.js +40 -7
- package/dist/server/app-page-cache-finalizer.d.ts +2 -1
- package/dist/server/app-page-cache-finalizer.js +1 -1
- package/dist/server/app-page-cache-render.d.ts +10 -2
- package/dist/server/app-page-cache-render.js +15 -2
- package/dist/server/app-page-cache.js +2 -2
- package/dist/server/app-page-dispatch.d.ts +34 -1
- package/dist/server/app-page-dispatch.js +165 -34
- package/dist/server/app-page-element-builder.d.ts +17 -1
- package/dist/server/app-page-element-builder.js +187 -66
- package/dist/server/app-page-execution.d.ts +28 -1
- package/dist/server/app-page-execution.js +114 -5
- package/dist/server/app-page-head.d.ts +95 -3
- package/dist/server/app-page-head.js +307 -152
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +48 -2
- package/dist/server/app-page-http-access-fallback-metadata.js +76 -1
- package/dist/server/app-page-method.d.ts +2 -1
- package/dist/server/app-page-probe.d.ts +2 -1
- package/dist/server/app-page-render-identity.d.ts +2 -1
- package/dist/server/app-page-render.d.ts +7 -1
- package/dist/server/app-page-render.js +38 -11
- package/dist/server/app-page-request.d.ts +14 -1
- package/dist/server/app-page-request.js +1 -1
- package/dist/server/app-page-route-wiring.d.ts +52 -2
- package/dist/server/app-page-route-wiring.js +197 -47
- package/dist/server/app-page-rsc-render-status.d.ts +3 -1
- package/dist/server/app-page-rsc-render-status.js +1 -0
- package/dist/server/app-page-search-params-observation.d.ts +8 -6
- package/dist/server/app-page-search-params-observation.js +16 -11
- package/dist/server/app-page-segment-plan.d.ts +2 -1
- package/dist/server/app-page-stream.d.ts +38 -1
- package/dist/server/app-page-stream.js +24 -4
- package/dist/server/app-pages-bridge.d.ts +4 -2
- package/dist/server/app-pages-bridge.js +11 -7
- package/dist/server/app-ppr-fallback-shell-render.d.ts +2 -1
- package/dist/server/app-ppr-fallback-shell.d.ts +2 -1
- package/dist/server/app-prerender-endpoints.d.ts +2 -1
- package/dist/server/app-prerender-static-params.d.ts +2 -1
- package/dist/server/app-prerender-static-params.js +3 -2
- package/dist/server/app-render-dependency.d.ts +11 -1
- package/dist/server/app-render-dependency.js +65 -6
- package/dist/server/app-request-stage-independent-entry.d.ts +2 -1
- package/dist/server/app-request-stage-independent-entry.js +2 -2
- package/dist/server/app-response-stage-entry.d.ts +2 -1
- package/dist/server/app-response-stage-entry.js +3 -3
- package/dist/server/app-route-handler-cache.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.d.ts +2 -1
- package/dist/server/app-route-handler-dispatch.js +4 -2
- package/dist/server/app-route-handler-execution.d.ts +4 -1
- package/dist/server/app-route-handler-execution.js +9 -2
- package/dist/server/app-route-handler-middleware-context.d.ts +2 -1
- package/dist/server/app-route-handler-middleware-context.js +3 -3
- package/dist/server/app-route-handler-response.d.ts +4 -2
- package/dist/server/app-route-handler-response.js +2 -2
- package/dist/server/app-route-handler-runtime.d.ts +4 -1
- package/dist/server/app-route-handler-runtime.js +20 -3
- package/dist/server/app-route-module-loader.d.ts +18 -1
- package/dist/server/app-route-module-loader.js +15 -6
- package/dist/server/app-route-tree-prefetch.d.ts +2 -1
- package/dist/server/app-route-tree.d.ts +20 -0
- package/dist/server/app-route-tree.js +18 -0
- package/dist/server/app-router-entry.js +2 -2
- package/dist/server/app-rsc-combined-handler.js +8 -1
- package/dist/server/app-rsc-error-handler.d.ts +2 -1
- package/dist/server/app-rsc-errors.d.ts +9 -1
- package/dist/server/app-rsc-errors.js +9 -2
- package/dist/server/app-rsc-handler.d.ts +6 -2
- package/dist/server/app-rsc-handler.js +152 -140
- package/dist/server/app-rsc-response-finalizer.d.ts +7 -1
- package/dist/server/app-rsc-response-finalizer.js +4 -1
- package/dist/server/app-rsc-response-stage.js +3 -1
- package/dist/server/app-rsc-route-matching.d.ts +39 -1
- package/dist/server/app-rsc-route-matching.js +25 -1
- package/dist/server/app-segment-config.d.ts +2 -1
- package/dist/server/app-segment-config.js +1 -14
- package/dist/server/app-server-action-execution.d.ts +25 -7
- package/dist/server/app-server-action-execution.js +53 -59
- package/dist/server/app-ssr-entry.d.ts +12 -0
- package/dist/server/app-ssr-entry.js +104 -48
- package/dist/server/app-ssr-error-meta.d.ts +2 -1
- package/dist/server/app-ssr-search-params-gate.d.ts +2 -1
- package/dist/server/app-ssr-stream.d.ts +29 -10
- package/dist/server/app-ssr-stream.js +311 -67
- package/dist/server/app-static-generation.d.ts +2 -1
- package/dist/server/app-streamed-client-references.d.ts +39 -0
- package/dist/server/app-streamed-client-references.js +156 -0
- package/dist/server/app-visited-response-cache.d.ts +2 -1
- package/dist/server/app-worker-stages.d.ts +2 -1
- package/dist/server/artifact-compatibility.d.ts +2 -1
- package/dist/server/bfcache-identity.d.ts +2 -1
- package/dist/server/cache-headers.d.ts +2 -1
- package/dist/server/cacheability-request.d.ts +2 -1
- package/dist/server/client-reuse-manifest.d.ts +2 -1
- package/dist/server/config-headers.d.ts +2 -1
- package/dist/server/config-headers.js +12 -3
- package/dist/server/csp.d.ts +2 -1
- package/dist/server/default-global-not-found-module.d.ts +2 -1
- package/dist/server/default-http-access-fallback-modules.d.ts +33 -0
- package/dist/server/default-http-access-fallback-modules.js +31 -0
- package/dist/server/defer-until-stream-consumed.d.ts +34 -0
- package/dist/server/defer-until-stream-consumed.js +154 -21
- package/dist/server/dev-lockfile.d.ts +32 -2
- package/dist/server/dev-lockfile.js +46 -2
- package/dist/server/dev-module-runner.d.ts +2 -1
- package/dist/server/dev-server.js +10 -3
- package/dist/server/fetch-handler.js +1 -2
- package/dist/server/file-based-metadata.d.ts +2 -1
- package/dist/server/framework-tracer.d.ts +2 -1
- package/dist/server/html.d.ts +1 -0
- package/dist/server/html.js +19 -1
- package/dist/server/http-conditional.d.ts +2 -1
- package/dist/server/http-error-responses.d.ts +2 -1
- package/dist/server/implicit-tags.d.ts +2 -1
- package/dist/server/isolate-shared-promise.d.ts +10 -0
- package/dist/server/isolate-shared-promise.js +33 -0
- package/dist/server/isr-cache.js +3 -2
- package/dist/server/metadata-route-build-data.d.ts +2 -1
- package/dist/server/metadata-route-build-data.js +1 -1
- package/dist/server/metadata-route-response.d.ts +2 -1
- package/dist/server/metadata-route-response.js +1 -1
- package/dist/server/metadata-routes.d.ts +2 -1
- package/dist/server/middleware-matcher-pattern.d.ts +0 -1
- package/dist/server/middleware-matcher-pattern.js +11 -140
- package/dist/server/middleware-matcher.js +5 -6
- package/dist/server/middleware-response-headers.d.ts +31 -0
- package/dist/server/middleware-response-headers.js +57 -1
- package/dist/server/middleware-runtime.d.ts +2 -1
- package/dist/server/middleware-runtime.js +26 -13
- package/dist/server/navigation-planner.d.ts +2 -2
- package/dist/server/navigation-trace.d.ts +2 -1
- package/dist/server/next-error-digest.d.ts +2 -1
- package/dist/server/nitro-public-files-plugin.d.ts +39 -0
- package/dist/server/nitro-public-files-plugin.js +106 -0
- package/dist/server/nitro-public-files.d.ts +22 -0
- package/dist/server/nitro-public-files.js +39 -0
- package/dist/server/opentelemetry-api.d.ts +2 -1
- package/dist/server/operation-token.d.ts +2 -1
- package/dist/server/pages-api-route.d.ts +2 -1
- package/dist/server/pages-asset-tags.d.ts +7 -1
- package/dist/server/pages-asset-tags.js +9 -2
- package/dist/server/pages-body-parser-config.d.ts +2 -1
- package/dist/server/pages-client-assets.d.ts +8 -1
- package/dist/server/pages-data-route.d.ts +2 -1
- package/dist/server/pages-document-asset-props.d.ts +2 -1
- package/dist/server/pages-document-initial-props.d.ts +2 -1
- package/dist/server/pages-execution-tracing.d.ts +2 -1
- package/dist/server/pages-execution-tracing.js +1 -1
- package/dist/server/pages-get-initial-props.d.ts +2 -1
- package/dist/server/pages-i18n.d.ts +18 -0
- package/dist/server/pages-i18n.js +18 -2
- package/dist/server/pages-node-compat.d.ts +5 -3
- package/dist/server/pages-node-compat.js +35 -16
- package/dist/server/pages-page-data.d.ts +7 -1
- package/dist/server/pages-page-data.js +35 -12
- package/dist/server/pages-page-handler.d.ts +3 -2
- package/dist/server/pages-page-handler.js +16 -7
- package/dist/server/pages-page-method.d.ts +2 -1
- package/dist/server/pages-page-response.d.ts +2 -1
- package/dist/server/pages-preview.d.ts +2 -1
- package/dist/server/pages-readiness.d.ts +2 -1
- package/dist/server/pages-request-pipeline.d.ts +8 -2
- package/dist/server/pages-request-pipeline.js +35 -40
- package/dist/server/pages-request-stage-entry.d.ts +2 -1
- package/dist/server/pages-request-stage-entry.js +16 -6
- package/dist/server/pages-response-stage-entry.d.ts +2 -1
- package/dist/server/pages-response-stage-entry.js +1 -1
- package/dist/server/pages-revalidate.js +1 -0
- package/dist/server/pages-route-data-kind.d.ts +2 -1
- package/dist/server/pages-router-entry.js +1 -1
- package/dist/server/prerender-cache-life-header.d.ts +2 -1
- package/dist/server/prerender-route-params.d.ts +2 -1
- package/dist/server/prod-server.d.ts +2 -2
- package/dist/server/prod-server.js +80 -36
- package/dist/server/proxy-trust.d.ts +6 -0
- package/dist/server/proxy-trust.js +12 -6
- package/dist/server/request-log.d.ts +2 -1
- package/dist/server/request-pipeline.d.ts +5 -0
- package/dist/server/request-pipeline.js +12 -1
- package/dist/server/request-tracing.d.ts +2 -1
- package/dist/server/request-tracing.js +1 -1
- package/dist/server/response-start-tracing.js +7 -29
- package/dist/server/rsc-render-stream.d.ts +4 -0
- package/dist/server/rsc-render-stream.js +25 -0
- package/dist/server/seed-cache.d.ts +2 -1
- package/dist/server/seed-cache.js +1 -1
- package/dist/server/server-reference-loader.js +10 -1
- package/dist/server/static-file-cache.d.ts +2 -1
- package/dist/server/static-file-cache.js +16 -3
- package/dist/server/static-layout-client-reuse-proof.d.ts +2 -1
- package/dist/server/worker-revalidation-context.d.ts +2 -1
- package/dist/server/worker-stages.d.ts +2 -1
- package/dist/server/worker-utils.js +1 -1
- package/dist/shims/app.d.ts +2 -1
- package/dist/shims/cache-callable-runtime.d.ts +2 -1
- package/dist/shims/cache-handler.d.ts +8 -3
- package/dist/shims/cache-handler.js +32 -11
- package/dist/shims/cache-request-state.d.ts +40 -3
- package/dist/shims/cache-request-state.js +70 -5
- package/dist/shims/cache-runtime.js +47 -19
- package/dist/shims/cache.d.ts +2 -2
- package/dist/shims/cache.js +17 -8
- package/dist/shims/caught-not-found-boundaries.d.ts +15 -0
- package/dist/shims/caught-not-found-boundaries.js +48 -0
- package/dist/shims/cdn-purge-routes.d.ts +25 -0
- package/dist/shims/cdn-purge-routes.js +77 -0
- package/dist/shims/client-locale.js +2 -1
- package/dist/shims/client-page-root.d.ts +2 -1
- package/dist/shims/config.d.ts +2 -1
- package/dist/shims/default-forbidden.d.ts +4 -0
- package/dist/shims/default-forbidden.js +18 -0
- package/dist/shims/default-not-found.d.ts +0 -5
- package/dist/shims/default-not-found.js +5 -41
- package/dist/shims/default-unauthorized.d.ts +4 -0
- package/dist/shims/default-unauthorized.js +18 -0
- package/dist/shims/dynamic.js +17 -4
- package/dist/shims/error-boundary.d.ts +39 -3
- package/dist/shims/error-boundary.js +31 -16
- package/dist/shims/font-google.js +1 -2
- package/dist/shims/font-utils.d.ts +3 -2
- package/dist/shims/font-utils.js +5 -3
- package/dist/shims/form.js +9 -4
- package/dist/shims/http-access-error-fallback.d.ts +7 -0
- package/dist/shims/http-access-error-fallback.js +47 -0
- package/dist/shims/image-props.d.ts +93 -0
- package/dist/shims/image-props.js +323 -0
- package/dist/shims/image.d.ts +4 -39
- package/dist/shims/image.js +4 -319
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +22 -2
- package/dist/shims/internal/app-prefetch-fetch-queue.js +71 -18
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +14 -3
- package/dist/shims/internal/app-route-prefetch-policy.js +29 -4
- package/dist/shims/internal/cache-context-accessor.d.ts +2 -1
- package/dist/shims/internal/client-reference-loader.d.ts +7 -0
- package/dist/shims/internal/client-reference-loader.js +91 -0
- package/dist/shims/internal/cookie-serialize.d.ts +2 -1
- package/dist/shims/internal/cookies.js +1 -2
- package/dist/shims/internal/headers-state.d.ts +9 -0
- package/dist/shims/internal/headers-state.js +19 -2
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -2
- package/dist/shims/internal/hybrid-client-route-owner-direct.js +31 -14
- package/dist/shims/internal/hybrid-client-route-owner.js +8 -8
- package/dist/shims/internal/interpolate-as.d.ts +2 -1
- package/dist/shims/internal/pages-data-target.d.ts +2 -1
- package/dist/shims/internal/pages-data-url.d.ts +2 -1
- package/dist/shims/internal/thenable-well-known-properties.d.ts +2 -1
- package/dist/shims/link.js +198 -53
- package/dist/shims/metadata.d.ts +32 -11
- package/dist/shims/metadata.js +88 -26
- package/dist/shims/navigation-errors.d.ts +2 -1
- package/dist/shims/navigation.d.ts +23 -3
- package/dist/shims/navigation.js +91 -25
- package/dist/shims/og.js +35 -10
- package/dist/shims/pages-router-runtime.d.ts +2 -1
- package/dist/shims/ppr-fallback-shell.d.ts +2 -1
- package/dist/shims/request-context.d.ts +13 -0
- package/dist/shims/router.js +33 -43
- package/dist/shims/server.d.ts +31 -4
- package/dist/shims/server.js +58 -10
- package/dist/shims/thenable-params.d.ts +6 -1
- package/dist/shims/thenable-params.js +11 -2
- package/dist/shims/unified-request-context.d.ts +5 -0
- package/dist/shims/unified-request-context.js +5 -3
- package/dist/typegen.d.ts +2 -1
- package/dist/utils/asset-prefix.d.ts +7 -0
- package/dist/utils/asset-prefix.js +10 -1
- package/dist/utils/client-build-manifest.d.ts +4 -1
- package/dist/utils/client-build-manifest.js +20 -6
- package/dist/utils/client-entry-manifest.d.ts +13 -0
- package/dist/utils/client-entry-manifest.js +20 -1
- package/dist/utils/client-reference-chunks.d.ts +45 -0
- package/dist/utils/client-reference-chunks.js +30 -0
- package/dist/utils/client-runtime-metadata.d.ts +10 -1
- package/dist/utils/client-runtime-metadata.js +53 -9
- package/dist/utils/compare.d.ts +9 -0
- package/dist/utils/compare.js +15 -1
- package/dist/utils/lazy-chunks.d.ts +18 -0
- package/dist/utils/lazy-chunks.js +27 -1
- package/dist/utils/manifest-paths.d.ts +14 -0
- package/dist/utils/manifest-paths.js +22 -1
- package/dist/utils/middleware-request-headers.d.ts +2 -1
- package/dist/utils/path-to-regexp.d.ts +21 -0
- package/dist/{server/middleware-path-to-regexp.js → utils/path-to-regexp.js} +14 -11
- package/dist/utils/plugin-react-version.d.ts +15 -0
- package/dist/utils/plugin-react-version.js +64 -0
- package/dist/utils/project.d.ts +2 -1
- package/dist/utils/project.js +9 -1
- package/dist/utils/public-routes.d.ts +2 -0
- package/dist/utils/public-routes.js +18 -7
- package/dist/utils/query.d.ts +2 -1
- package/dist/utils/sorted-array.d.ts +2 -1
- package/dist/utils/vite-cli-invocation.d.ts +2 -1
- package/package.json +5 -5
- package/dist/deps/.pnpm/image-size@2.0.2/deps/image-size/dist/index.js +0 -808
- package/dist/server/default-not-found-module.d.ts +0 -19
- package/dist/server/default-not-found-module.js +0 -18
- package/dist/server/middleware-path-to-regexp.d.ts +0 -13
- package/dist/server/rsc-stream-hints.d.ts +0 -21
- package/dist/server/rsc-stream-hints.js +0 -227
- package/dist/utils/regex-safety.d.ts +0 -17
- package/dist/utils/regex-safety.js +0 -789
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { CLIENT_REFERENCE_CHUNK_KIND } from "../../utils/client-reference-chunks.js";
|
|
2
|
+
//#region src/shims/internal/client-reference-loader.ts
|
|
3
|
+
/**
|
|
4
|
+
* Loads App Router client references in production builds from the chunks
|
|
5
|
+
* their Flight rows name, as React's webpack binding does in Next.js. The
|
|
6
|
+
* browser entry names none of those chunks, so its hash doesn't change when a
|
|
7
|
+
* client reference is added or changes.
|
|
8
|
+
*
|
|
9
|
+
* React calls `__webpack_chunk_load__` for each chunk a reference's row names
|
|
10
|
+
* (see server/app-client-reference-manifest.ts), and requires the reference
|
|
11
|
+
* once they load. Its module chunk registers the reference as it evaluates
|
|
12
|
+
* (see plugins/rsc-client-reference-loaders.ts). The other chunks load the way
|
|
13
|
+
* Vite's preload helper loads a dynamic import's dependencies: JS chunks are
|
|
14
|
+
* modulepreloaded, the module chunk evaluates once its stylesheets load, and
|
|
15
|
+
* a failure dispatches `vite:preloadError`.
|
|
16
|
+
*/
|
|
17
|
+
const registered = /* @__PURE__ */ new Map();
|
|
18
|
+
function registerClientReference(key, exports) {
|
|
19
|
+
registered.set(key, exports);
|
|
20
|
+
}
|
|
21
|
+
/** What @vitejs/plugin-rsc/browser calls as `clientReferences.default[key]()`. */
|
|
22
|
+
const clientReferences = new Proxy({}, { get(_target, key) {
|
|
23
|
+
if (typeof key !== "string" || key === "then") return void 0;
|
|
24
|
+
return async () => {
|
|
25
|
+
const exports = registered.get(key);
|
|
26
|
+
if (!exports) throw new Error(`client reference not found '${key}'`);
|
|
27
|
+
return exports;
|
|
28
|
+
};
|
|
29
|
+
} });
|
|
30
|
+
function isLinked(href, stylesheet) {
|
|
31
|
+
for (const link of document.getElementsByTagName("link")) if (link.href === href && (!stylesheet || link.rel === "stylesheet")) return true;
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
function appendLink(url, stylesheet) {
|
|
35
|
+
const href = new URL(url, document.baseURI).href;
|
|
36
|
+
if (isLinked(href, stylesheet)) return null;
|
|
37
|
+
const link = document.createElement("link");
|
|
38
|
+
link.rel = stylesheet ? "stylesheet" : "modulepreload";
|
|
39
|
+
if (!stylesheet) link.as = "script";
|
|
40
|
+
link.crossOrigin = "";
|
|
41
|
+
link.href = href;
|
|
42
|
+
const nonceMeta = document.querySelector("meta[property=csp-nonce]");
|
|
43
|
+
const nonce = nonceMeta?.nonce || nonceMeta?.getAttribute("nonce");
|
|
44
|
+
if (nonce) link.setAttribute("nonce", nonce);
|
|
45
|
+
document.head.appendChild(link);
|
|
46
|
+
return link;
|
|
47
|
+
}
|
|
48
|
+
const stylesheets = /* @__PURE__ */ new Map();
|
|
49
|
+
/**
|
|
50
|
+
* Resolves once the stylesheet loads or fails. React keeps a failed chunk's
|
|
51
|
+
* promise for the rest of the session, so rejecting would fail every client
|
|
52
|
+
* reference that shares the stylesheet, even once the network recovers. As in
|
|
53
|
+
* Next.js, a reference renders without a stylesheet that fails to load, and
|
|
54
|
+
* `vite:preloadError` still lets the app reload the page.
|
|
55
|
+
*/
|
|
56
|
+
function loadStylesheet(url) {
|
|
57
|
+
const href = new URL(url, document.baseURI).href;
|
|
58
|
+
let loaded = stylesheets.get(href);
|
|
59
|
+
if (loaded) return loaded;
|
|
60
|
+
const link = appendLink(url, true);
|
|
61
|
+
loaded = link ? new Promise((resolve) => {
|
|
62
|
+
link.addEventListener("load", () => resolve());
|
|
63
|
+
link.addEventListener("error", () => {
|
|
64
|
+
const event = new Event("vite:preloadError", { cancelable: true });
|
|
65
|
+
event.payload = /* @__PURE__ */ new Error(`Unable to preload CSS for ${url}`);
|
|
66
|
+
window.dispatchEvent(event);
|
|
67
|
+
resolve();
|
|
68
|
+
});
|
|
69
|
+
}) : Promise.resolve();
|
|
70
|
+
stylesheets.set(href, loaded);
|
|
71
|
+
return loaded;
|
|
72
|
+
}
|
|
73
|
+
function loadChunk(chunkId) {
|
|
74
|
+
const url = chunkId.slice(1);
|
|
75
|
+
switch (chunkId[0]) {
|
|
76
|
+
case CLIENT_REFERENCE_CHUNK_KIND.module: {
|
|
77
|
+
const [file, ...css] = url.split("\n");
|
|
78
|
+
return Promise.all(css.map(loadStylesheet)).then(() => import(
|
|
79
|
+
/* @vite-ignore */
|
|
80
|
+
file
|
|
81
|
+
));
|
|
82
|
+
}
|
|
83
|
+
case CLIENT_REFERENCE_CHUNK_KIND.preload:
|
|
84
|
+
appendLink(url, false);
|
|
85
|
+
return Promise.resolve();
|
|
86
|
+
default: return Promise.reject(/* @__PURE__ */ new Error(`[vinext] Unknown client reference chunk '${chunkId}'`));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
globalThis["__webpack_chunk_load__"] = loadChunk;
|
|
90
|
+
//#endregion
|
|
91
|
+
export { clientReferences, registerClientReference };
|
|
@@ -44,4 +44,5 @@ export declare function validateCookieAttributeValue(value: string, attributeNam
|
|
|
44
44
|
* mutating any internal state) via `validateCookieName`.
|
|
45
45
|
*/
|
|
46
46
|
export declare function serializeSetCookie(name: string, value: string | null | undefined, options?: SerializeSetCookieOptions): string;
|
|
47
|
-
//#endregion
|
|
47
|
+
//#endregion
|
|
48
|
+
export {};
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export { RequestCookies, ResponseCookies };
|
|
1
|
+
export { RequestCookies, ResponseCookies } from "../server.js";
|
|
@@ -57,10 +57,19 @@ export declare function isRenderDynamicLatched(): boolean;
|
|
|
57
57
|
* already latched; check `isRenderDynamicLatched()` first.
|
|
58
58
|
*/
|
|
59
59
|
export declare function onRenderDynamicLatched(listener: () => void): () => void;
|
|
60
|
+
/**
|
|
61
|
+
* Record an invalid dynamic API use on `state`, keeping the first one, like
|
|
62
|
+
* Next.js's `workStore.invalidDynamicUsageError ??= error`.
|
|
63
|
+
*/
|
|
64
|
+
export declare function recordInvalidDynamicUsageError(state: VinextHeadersShimState, error: unknown): void;
|
|
60
65
|
export declare function markRenderRequestApiUsage(kind: RenderRequestApiKind): void;
|
|
61
66
|
export declare function throwIfStaticGenerationAccessError(): void;
|
|
67
|
+
/** Whether `error` is the error a `dynamic = "error"` render throws on a dynamic API read. */
|
|
68
|
+
export declare function isStaticGenerationAccessError(error: unknown): error is Error;
|
|
62
69
|
/** Whether work is executing inside a cache boundary that owns its reuse. */
|
|
63
70
|
export declare function isInsideAnyCacheScope(): boolean;
|
|
71
|
+
/** The error a dynamic request API throws inside a public "use cache". */
|
|
72
|
+
export declare function createUseCacheAccessError(apiName: string): Error;
|
|
64
73
|
/**
|
|
65
74
|
* Throw if the current execution is inside a "use cache" or unstable_cache()
|
|
66
75
|
* scope. Called by dynamic request APIs (headers, cookies, connection) to
|
|
@@ -87,6 +87,14 @@ function propagateInvalidDynamicUsageError(state, error) {
|
|
|
87
87
|
if (target.invalidDynamicUsageError == null) target.invalidDynamicUsageError = error;
|
|
88
88
|
});
|
|
89
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* Record an invalid dynamic API use on `state`, keeping the first one, like
|
|
92
|
+
* Next.js's `workStore.invalidDynamicUsageError ??= error`.
|
|
93
|
+
*/
|
|
94
|
+
function recordInvalidDynamicUsageError(state, error) {
|
|
95
|
+
state.invalidDynamicUsageError ??= error;
|
|
96
|
+
propagateInvalidDynamicUsageError(state, error);
|
|
97
|
+
}
|
|
90
98
|
function markRenderRequestApiUsage(kind) {
|
|
91
99
|
getHeadersShimState().renderRequestApiUsage.add(kind);
|
|
92
100
|
}
|
|
@@ -94,6 +102,11 @@ function throwIfStaticGenerationAccessError() {
|
|
|
94
102
|
const accessError = getHeadersShimState().headersContext?.accessError;
|
|
95
103
|
if (accessError) throw accessError;
|
|
96
104
|
}
|
|
105
|
+
/** Whether `error` is the error a `dynamic = "error"` render throws on a dynamic API read. */
|
|
106
|
+
function isStaticGenerationAccessError(error) {
|
|
107
|
+
const accessError = getHeadersShimState().headersContext?.accessError;
|
|
108
|
+
return accessError !== void 0 && error === accessError;
|
|
109
|
+
}
|
|
97
110
|
/** Symbol used by cache-runtime.ts to store the "use cache" ALS on globalThis */
|
|
98
111
|
const _USE_CACHE_ALS_KEY = Symbol.for("vinext.cacheRuntime.contextAls");
|
|
99
112
|
/** Symbol used by cache.ts to store the unstable_cache ALS on globalThis */
|
|
@@ -121,6 +134,10 @@ function _isInsideUnstableCache() {
|
|
|
121
134
|
function isInsideAnyCacheScope() {
|
|
122
135
|
return _getUseCacheGuardContext() !== null || _isInsideUnstableCache();
|
|
123
136
|
}
|
|
137
|
+
/** The error a dynamic request API throws inside a public "use cache". */
|
|
138
|
+
function createUseCacheAccessError(apiName) {
|
|
139
|
+
return /* @__PURE__ */ new Error(`\`${apiName}\` cannot be called inside "use cache". If you need this data inside a cached function, call \`${apiName}\` outside and pass the required data as an argument.`);
|
|
140
|
+
}
|
|
124
141
|
/**
|
|
125
142
|
* Throw if the current execution is inside a "use cache" or unstable_cache()
|
|
126
143
|
* scope. Called by dynamic request APIs (headers, cookies, connection) to
|
|
@@ -130,7 +147,7 @@ function isInsideAnyCacheScope() {
|
|
|
130
147
|
*/
|
|
131
148
|
function throwIfInsideCacheScope(apiName) {
|
|
132
149
|
if (_isInsidePublicUseCache()) {
|
|
133
|
-
const error =
|
|
150
|
+
const error = createUseCacheAccessError(apiName);
|
|
134
151
|
try {
|
|
135
152
|
const cacheCtx = _getUseCacheGuardContext();
|
|
136
153
|
if (cacheCtx) cacheCtx.invalidDynamicUsageError = error;
|
|
@@ -154,4 +171,4 @@ function getHeadersAccessPhase() {
|
|
|
154
171
|
return getHeadersShimState().phase;
|
|
155
172
|
}
|
|
156
173
|
//#endregion
|
|
157
|
-
export { createRenderDynamicLatch, getHeadersAccessPhase, getHeadersShimState, headersShimAls, isInsideAnyCacheScope, isRenderDynamicLatched, markDynamicUsage, markRenderRequestApiUsage, onRenderDynamicLatched, throwIfInsideCacheScope, throwIfStaticGenerationAccessError };
|
|
174
|
+
export { createRenderDynamicLatch, createUseCacheAccessError, getHeadersAccessPhase, getHeadersShimState, headersShimAls, isInsideAnyCacheScope, isRenderDynamicLatched, isStaticGenerationAccessError, markDynamicUsage, markRenderRequestApiUsage, onRenderDynamicLatched, recordInvalidDynamicUsageError, throwIfInsideCacheScope, throwIfStaticGenerationAccessError };
|
|
@@ -3,16 +3,20 @@ import { VinextLinkPrefetchRoute, VinextPagesLinkPrefetchRoute } from "../../cli
|
|
|
3
3
|
export type HybridClientOwner = "app" | "document" | "pages";
|
|
4
4
|
type HybridClientRouteMatches = {
|
|
5
5
|
appMatch: VinextLinkPrefetchRoute | null;
|
|
6
|
+
/** A Pages Router URL under `/api`, which only API routes serve. */
|
|
7
|
+
pagesApiRequest: boolean;
|
|
6
8
|
pagesMatch: VinextPagesLinkPrefetchRoute | null;
|
|
7
9
|
};
|
|
8
10
|
declare global {
|
|
9
11
|
interface Window {
|
|
12
|
+
__VINEXT_APP_ROUTE_HANDLERS__?: VinextLinkPrefetchRoute[];
|
|
10
13
|
__VINEXT_LINK_PREFETCH_ROUTES__?: VinextLinkPrefetchRoute[];
|
|
11
14
|
__VINEXT_PAGES_LINK_PREFETCH_ROUTES__?: VinextPagesLinkPrefetchRoute[];
|
|
12
15
|
}
|
|
13
16
|
}
|
|
14
17
|
export declare function resolveSameOriginAppPathname(href: string, basePath: string): string | null;
|
|
15
18
|
export declare function matchDirectHybridClientRoutes(href: string, basePath: string): HybridClientRouteMatches;
|
|
16
|
-
export declare function resolveMatchedHybridClientRouteOwner({ appMatch, pagesMatch }: HybridClientRouteMatches): HybridClientOwner | null;
|
|
19
|
+
export declare function resolveMatchedHybridClientRouteOwner({ appMatch, pagesApiRequest, pagesMatch }: HybridClientRouteMatches): HybridClientOwner | null;
|
|
17
20
|
export declare function resolveDirectHybridClientRouteOwner(href: string, basePath: string): HybridClientOwner | null;
|
|
18
|
-
//#endregion
|
|
21
|
+
//#endregion
|
|
22
|
+
export {};
|
|
@@ -2,11 +2,11 @@ import { stripBasePath } from "../../utils/base-path.js";
|
|
|
2
2
|
import { compareHybridRoutePatterns } from "../../routing/utils.js";
|
|
3
3
|
import { createRouteTrieCache, matchRouteWithTrie } from "../../routing/route-matching.js";
|
|
4
4
|
import { getLocalePathPrefix } from "../../utils/domain-locale.js";
|
|
5
|
+
import { hashRoutePathname } from "../../routing/hashed-route-patterns.js";
|
|
5
6
|
//#region src/shims/internal/hybrid-client-route-owner-direct.ts
|
|
6
7
|
const appRouteTrieCache = createRouteTrieCache();
|
|
8
|
+
const appRouteHandlerTrieCache = createRouteTrieCache();
|
|
7
9
|
const pagesRouteTrieCache = createRouteTrieCache();
|
|
8
|
-
const pagesPageRoutesCache = /* @__PURE__ */ new WeakMap();
|
|
9
|
-
const pagesApiRoutesCache = /* @__PURE__ */ new WeakMap();
|
|
10
10
|
function patternFromParts(parts) {
|
|
11
11
|
return "/" + parts.join("/");
|
|
12
12
|
}
|
|
@@ -32,34 +32,51 @@ function resolveSameOriginPathnames(href, basePath) {
|
|
|
32
32
|
function resolveSameOriginAppPathname(href, basePath) {
|
|
33
33
|
return resolveSameOriginPathnames(href, basePath)?.appPathname ?? null;
|
|
34
34
|
}
|
|
35
|
-
function
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
if (
|
|
39
|
-
|
|
40
|
-
|
|
35
|
+
function patternPartRank(part) {
|
|
36
|
+
if (part === void 0) return 0;
|
|
37
|
+
if (!part.startsWith(":")) return 1;
|
|
38
|
+
if (part.endsWith("+")) return 3;
|
|
39
|
+
if (part.endsWith("*")) return 4;
|
|
40
|
+
return 2;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The route the App router picks when both match the same URL: the first part
|
|
44
|
+
* whose kind differs decides, static > dynamic > catch-all > optional
|
|
45
|
+
* catch-all, as in `routing/route-trie.ts`.
|
|
46
|
+
*/
|
|
47
|
+
function preferredAppRoute(page, handler) {
|
|
48
|
+
if (page === null || handler === null) return page ?? handler;
|
|
49
|
+
const length = Math.max(page.patternParts.length, handler.patternParts.length);
|
|
50
|
+
for (let index = 0; index < length; index++) {
|
|
51
|
+
const pageRank = patternPartRank(page.patternParts[index]);
|
|
52
|
+
const handlerRank = patternPartRank(handler.patternParts[index]);
|
|
53
|
+
if (pageRank !== handlerRank) return pageRank < handlerRank ? page : handler;
|
|
41
54
|
}
|
|
42
|
-
return
|
|
55
|
+
return page;
|
|
43
56
|
}
|
|
44
57
|
function matchDirectHybridClientRoutes(href, basePath) {
|
|
45
58
|
const pathnames = resolveSameOriginPathnames(href, basePath);
|
|
46
59
|
if (pathnames === null) return {
|
|
47
60
|
appMatch: null,
|
|
61
|
+
pagesApiRequest: false,
|
|
48
62
|
pagesMatch: null
|
|
49
63
|
};
|
|
50
64
|
const appRoutes = window.__VINEXT_LINK_PREFETCH_ROUTES__;
|
|
65
|
+
const appRouteHandlers = window.__VINEXT_APP_ROUTE_HANDLERS__;
|
|
51
66
|
const pagesRoutes = window.__VINEXT_PAGES_LINK_PREFETCH_ROUTES__;
|
|
52
67
|
return {
|
|
53
|
-
appMatch: appRoutes ? matchRouteWithTrie(pathnames.appPathname, appRoutes, appRouteTrieCache)?.route ?? null : null,
|
|
54
|
-
|
|
68
|
+
appMatch: preferredAppRoute(appRoutes ? matchRouteWithTrie(pathnames.appPathname, appRoutes, appRouteTrieCache)?.route ?? null : null, appRouteHandlers?.length ? matchRouteWithTrie(hashRoutePathname(pathnames.appPathname), appRouteHandlers, appRouteHandlerTrieCache)?.route ?? null : null),
|
|
69
|
+
pagesApiRequest: pathnames.pagesApiRequest,
|
|
70
|
+
pagesMatch: pagesRoutes && !pathnames.pagesApiRequest ? matchRouteWithTrie(pathnames.pagesPathname, pagesRoutes, pagesRouteTrieCache)?.route ?? null : null
|
|
55
71
|
};
|
|
56
72
|
}
|
|
57
|
-
function resolveMatchedHybridClientRouteOwner({ appMatch, pagesMatch }) {
|
|
73
|
+
function resolveMatchedHybridClientRouteOwner({ appMatch, pagesApiRequest, pagesMatch }) {
|
|
74
|
+
if (pagesApiRequest) return appMatch?.isDynamic === false && !appMatch.documentOnly ? "app" : "document";
|
|
58
75
|
if (appMatch === null && pagesMatch === null) return null;
|
|
59
76
|
if (pagesMatch === null) return appMatch.documentOnly ? "document" : "app";
|
|
60
|
-
if (appMatch === null) return
|
|
77
|
+
if (appMatch === null) return "pages";
|
|
61
78
|
const owner = compareHybridRoutePatterns(patternFromParts(pagesMatch.patternParts), pagesMatch.isDynamic, patternFromParts(appMatch.patternParts), appMatch.isDynamic);
|
|
62
|
-
return
|
|
79
|
+
return owner === "app" && appMatch.documentOnly ? "document" : owner;
|
|
63
80
|
}
|
|
64
81
|
function resolveDirectHybridClientRouteOwner(href, basePath) {
|
|
65
82
|
if (typeof window === "undefined") return null;
|
|
@@ -64,23 +64,23 @@ function resolveHybridClientRewriteHref(href, basePath) {
|
|
|
64
64
|
didRewrite = true;
|
|
65
65
|
}
|
|
66
66
|
let matches = matchDirectHybridClientRoutes(currentHref, basePath);
|
|
67
|
-
if ((matches.appMatch === null || matches.appMatch.isDynamic) && (matches.pagesMatch === null || matches.pagesMatch.isDynamic)) for (const rewrite of rewrites.afterFiles) {
|
|
67
|
+
if (!matches.pagesApiRequest && (matches.appMatch === null || matches.appMatch.isDynamic) && (matches.pagesMatch === null || matches.pagesMatch.isDynamic)) for (const rewrite of rewrites.afterFiles) {
|
|
68
68
|
const afterFilesRewrite = resolveClientRewrite(currentHref, basePath, [rewrite]);
|
|
69
69
|
if (afterFilesRewrite?.kind === "document") return didRewrite ? currentHref : null;
|
|
70
70
|
if (afterFilesRewrite?.kind !== "rewrite") continue;
|
|
71
71
|
currentHref = afterFilesRewrite.href;
|
|
72
72
|
didRewrite = true;
|
|
73
73
|
matches = matchDirectHybridClientRoutes(currentHref, basePath);
|
|
74
|
-
if (matches.appMatch || matches.pagesMatch) break;
|
|
74
|
+
if (matches.pagesApiRequest || matches.appMatch || matches.pagesMatch) break;
|
|
75
75
|
}
|
|
76
|
-
if (matches.appMatch === null && matches.pagesMatch === null) for (const rewrite of rewrites.fallback) {
|
|
76
|
+
if (!matches.pagesApiRequest && matches.appMatch === null && matches.pagesMatch === null) for (const rewrite of rewrites.fallback) {
|
|
77
77
|
const fallbackRewrite = resolveClientRewrite(currentHref, basePath, [rewrite]);
|
|
78
78
|
if (fallbackRewrite?.kind === "document") return didRewrite ? currentHref : null;
|
|
79
79
|
if (fallbackRewrite?.kind !== "rewrite") continue;
|
|
80
80
|
currentHref = fallbackRewrite.href;
|
|
81
81
|
didRewrite = true;
|
|
82
82
|
matches = matchDirectHybridClientRoutes(currentHref, basePath);
|
|
83
|
-
if (matches.appMatch || matches.pagesMatch) break;
|
|
83
|
+
if (matches.pagesApiRequest || matches.appMatch || matches.pagesMatch) break;
|
|
84
84
|
}
|
|
85
85
|
return didRewrite ? currentHref : null;
|
|
86
86
|
}
|
|
@@ -105,21 +105,21 @@ function resolveHybridClientRouteOwner(href, basePath) {
|
|
|
105
105
|
if (beforeFilesRewrite?.kind === "rewrite") href = beforeFilesRewrite.href;
|
|
106
106
|
}
|
|
107
107
|
let matches = matchDirectHybridClientRoutes(href, basePath);
|
|
108
|
-
if (rewrites && (matches.appMatch === null || matches.appMatch.isDynamic) && (matches.pagesMatch === null || matches.pagesMatch.isDynamic)) for (const rewrite of rewrites.afterFiles) {
|
|
108
|
+
if (rewrites && !matches.pagesApiRequest && (matches.appMatch === null || matches.appMatch.isDynamic) && (matches.pagesMatch === null || matches.pagesMatch.isDynamic)) for (const rewrite of rewrites.afterFiles) {
|
|
109
109
|
const afterFilesRewrite = resolveClientRewrite(href, basePath, [rewrite]);
|
|
110
110
|
if (afterFilesRewrite?.kind === "document") return "document";
|
|
111
111
|
if (afterFilesRewrite?.kind !== "rewrite") continue;
|
|
112
112
|
href = afterFilesRewrite.href;
|
|
113
113
|
matches = matchDirectHybridClientRoutes(href, basePath);
|
|
114
|
-
if (matches.appMatch || matches.pagesMatch) break;
|
|
114
|
+
if (matches.pagesApiRequest || matches.appMatch || matches.pagesMatch) break;
|
|
115
115
|
}
|
|
116
|
-
if (rewrites && matches.appMatch === null && matches.pagesMatch === null) for (const rewrite of rewrites.fallback) {
|
|
116
|
+
if (rewrites && !matches.pagesApiRequest && matches.appMatch === null && matches.pagesMatch === null) for (const rewrite of rewrites.fallback) {
|
|
117
117
|
const fallbackRewrite = resolveClientRewrite(href, basePath, [rewrite]);
|
|
118
118
|
if (fallbackRewrite?.kind === "document") return "document";
|
|
119
119
|
if (fallbackRewrite?.kind !== "rewrite") continue;
|
|
120
120
|
href = fallbackRewrite.href;
|
|
121
121
|
matches = matchDirectHybridClientRoutes(href, basePath);
|
|
122
|
-
if (matches.appMatch || matches.pagesMatch) break;
|
|
122
|
+
if (matches.pagesApiRequest || matches.appMatch || matches.pagesMatch) break;
|
|
123
123
|
}
|
|
124
124
|
return resolveMatchedHybridClientRouteOwner(matches);
|
|
125
125
|
}
|
|
@@ -36,4 +36,5 @@ export declare function interpolateDynamicRouteHref(routeHref: string, asHref: s
|
|
|
36
36
|
* packages/next/src/client/resolve-href.ts.
|
|
37
37
|
*/
|
|
38
38
|
export declare function resolveDynamicRouteHref(routeHref: string): DynamicRouteHrefResolution | null;
|
|
39
|
-
//#endregion
|
|
39
|
+
//#endregion
|
|
40
|
+
export {};
|