vinext 1.0.0-beta.9 → 1.0.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 +150 -92
- package/THIRD_PARTY_LICENSES.md +51 -0
- package/dist/_virtual/_rolldown/runtime.js +25 -0
- package/dist/build/action-owner-manifest.d.ts +8 -9
- package/dist/build/action-owner-manifest.js +23 -5
- package/dist/build/assets-ignore.d.ts +3 -4
- package/dist/build/clean-output.d.ts +2 -3
- package/dist/build/client-build-config.d.ts +40 -12
- package/dist/build/client-build-config.js +76 -6
- package/dist/build/css-url-assets.d.ts +4 -5
- package/dist/build/css-url-assets.js +5 -2
- package/dist/build/google-fonts/build-url.d.ts +3 -4
- package/dist/build/google-fonts/fallback-metrics.d.ts +3 -4
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +2 -3
- package/dist/build/google-fonts/font-metadata.d.ts +2 -3
- package/dist/build/google-fonts/get-axes.d.ts +2 -3
- package/dist/build/google-fonts/sort-variants.d.ts +2 -3
- package/dist/build/google-fonts/validate.d.ts +2 -3
- package/dist/build/google-fonts/validate.js +8 -4
- package/dist/build/inject-pregenerated-paths.d.ts +2 -3
- package/dist/build/inject-pregenerated-paths.js +16 -14
- package/dist/build/inline-css.d.ts +3 -4
- package/dist/build/layout-classification-types.d.ts +4 -5
- package/dist/build/layout-classification.d.ts +7 -8
- package/dist/build/lifecycle.d.ts +42 -0
- package/dist/build/lifecycle.js +253 -0
- package/dist/build/module-dependency-cache.d.ts +2 -3
- package/dist/build/next-client-runtime-manifests.d.ts +4 -5
- package/dist/build/nitro-route-rules.d.ts +6 -7
- package/dist/build/nitro-route-rules.js +1 -1
- package/dist/build/pages-client-assets-module.d.ts +4 -8
- package/dist/build/pages-client-assets-module.js +7 -14
- package/dist/build/precompress.d.ts +2 -3
- package/dist/build/precompress.js +1 -1
- package/dist/build/prerender-cloudflare-loader.d.ts +4 -0
- package/dist/build/prerender-cloudflare-loader.js +49 -0
- package/dist/build/prerender-paths.d.ts +36 -11
- package/dist/build/prerender-paths.js +274 -102
- package/dist/build/prerender-phase.d.ts +2 -3
- package/dist/build/prerender-server-entry.js +11 -3
- package/dist/build/prerender-server-pool.d.ts +9 -6
- package/dist/build/prerender-server-pool.js +8 -5
- package/dist/build/prerender.d.ts +73 -16
- package/dist/build/prerender.js +272 -80
- package/dist/build/preview-credentials.d.ts +5 -6
- package/dist/build/preview-credentials.js +2 -2
- package/dist/build/public-dir-conflict.d.ts +5 -6
- package/dist/build/public-dir-conflict.js +2 -1
- package/dist/build/report.d.ts +24 -20
- package/dist/build/report.js +10 -2
- package/dist/build/route-classification-injector.d.ts +2 -3
- package/dist/build/route-classification-manifest.d.ts +5 -6
- package/dist/build/run-prerender.d.ts +11 -9
- package/dist/build/run-prerender.js +26 -16
- package/dist/build/server-entry.d.ts +6 -0
- package/dist/build/server-entry.js +34 -0
- package/dist/build/server-manifest.d.ts +8 -3
- package/dist/build/server-manifest.js +14 -2
- package/dist/build/ssr-manifest.d.ts +5 -6
- package/dist/build/standalone.d.ts +2 -3
- package/dist/build/standalone.js +2 -2
- package/dist/build/static-export.d.ts +6 -7
- package/dist/cache/cache-adapters-virtual.d.ts +60 -20
- package/dist/cache/cache-adapters-virtual.js +50 -7
- package/dist/check.d.ts +11 -10
- package/dist/check.js +467 -176
- package/dist/cli-args.d.ts +7 -16
- package/dist/cli-args.js +2 -45
- package/dist/cli-dev-config.d.ts +10 -7
- package/dist/cli-dev-config.js +160 -3
- package/dist/cli.js +124 -442
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- package/dist/client/browser-globals.d.ts +4 -0
- package/dist/client/browser-globals.js +5 -0
- package/dist/client/client-rewrite-matcher.d.ts +2 -3
- package/dist/client/client-rewrites.d.ts +4 -5
- package/dist/client/dev-error-overlay-store.d.ts +13 -14
- package/dist/client/dev-error-overlay.d.ts +15 -15
- package/dist/client/dev-error-overlay.js +8 -5
- package/dist/client/instrumentation-client-inject.d.ts +3 -4
- package/dist/client/instrumentation-client-state.d.ts +5 -6
- package/dist/client/instrumentation-client.d.ts +3 -4
- package/dist/client/navigation-runtime.d.ts +20 -17
- package/dist/client/navigation-runtime.js +4 -3
- package/dist/client/pages-router-link-navigation.d.ts +4 -5
- package/dist/client/react-instance.d.ts +2 -3
- package/dist/client/validate-module-path.d.ts +2 -3
- package/dist/client/vinext-next-data.d.ts +7 -10
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +2 -4
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +14 -2
- package/dist/config/next-config.d.ts +31 -27
- package/dist/config/next-config.js +163 -16
- package/dist/config/prerender.d.ts +20 -16
- package/dist/config/prerender.js +10 -4
- package/dist/config/request-context.d.ts +5 -6
- package/dist/config/server-external-packages.d.ts +14 -3
- package/dist/config/server-external-packages.js +37 -3
- package/dist/config/tsconfig-paths.d.ts +3 -4
- package/dist/deps/.pnpm/ignore@5.3.2/deps/ignore/index.js +189 -0
- package/dist/deps/.pnpm/ua-parser-js@1.0.35/deps/ua-parser-js/src/ua-parser.js +1057 -0
- package/dist/entries/app-browser-entry.d.ts +4 -5
- package/dist/entries/app-browser-entry.js +1 -3
- package/dist/entries/app-rsc-entry.d.ts +10 -3
- package/dist/entries/app-rsc-entry.js +503 -51
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +26 -8
- package/dist/entries/app-ssr-entry.d.ts +2 -3
- package/dist/entries/app-ssr-entry.js +8 -1
- package/dist/entries/pages-client-entry.d.ts +3 -3
- package/dist/entries/pages-client-entry.js +17 -2
- package/dist/entries/pages-server-entry.d.ts +13 -3
- package/dist/entries/pages-server-entry.js +234 -33
- package/dist/entries/runtime-entry-module.d.ts +4 -5
- package/dist/image/image-adapters-virtual.d.ts +4 -5
- package/dist/index.d.ts +10 -11
- package/dist/index.js +848 -255
- package/dist/init-cloudflare.d.ts +26 -17
- package/dist/init-cloudflare.js +711 -103
- package/dist/init-platform.d.ts +26 -22
- package/dist/init-platform.js +85 -29
- package/dist/init.d.ts +19 -13
- package/dist/init.js +126 -42
- package/dist/plugins/action-owner-manifest.d.ts +3 -4
- package/dist/plugins/action-owner-manifest.js +10 -3
- package/dist/plugins/ast-scope.d.ts +10 -11
- package/dist/plugins/ast-scope.js +10 -22
- package/dist/plugins/ast-utils.d.ts +16 -29
- package/dist/plugins/ast-utils.js +27 -71
- package/dist/plugins/async-hooks-stub.d.ts +2 -3
- package/dist/plugins/client-reference-dedup.d.ts +4 -5
- package/dist/plugins/commonjs-syntax.d.ts +16 -0
- package/dist/plugins/commonjs-syntax.js +22 -0
- package/dist/plugins/css-data-url.d.ts +2 -3
- package/dist/plugins/css-module-imports.d.ts +3 -4
- package/dist/plugins/css-module-imports.js +1 -1
- package/dist/plugins/dynamic-preload-metadata.d.ts +3 -4
- package/dist/plugins/dynamic-preload-metadata.js +55 -154
- package/dist/plugins/environment.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.d.ts +2 -3
- package/dist/plugins/extensionless-dynamic-import.js +6 -10
- package/dist/plugins/fonts.d.ts +10 -11
- package/dist/plugins/fonts.js +4 -3
- package/dist/plugins/ignore-dynamic-requests.d.ts +14 -4
- package/dist/plugins/ignore-dynamic-requests.js +113 -91
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +36 -48
- package/dist/plugins/instrumentation-client.d.ts +3 -3
- package/dist/plugins/instrumentation-client.js +46 -10
- package/dist/plugins/middleware-export-validation.d.ts +3 -4
- package/dist/plugins/middleware-export-validation.js +3 -3
- package/dist/plugins/middleware-server-only.d.ts +2 -3
- package/dist/plugins/og-asset-ownership.d.ts +5 -4
- package/dist/plugins/og-asset-ownership.js +24 -13
- package/dist/plugins/og-assets.d.ts +22 -5
- package/dist/plugins/og-assets.js +82 -21
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +271 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +34 -45
- package/dist/plugins/pages-node-externals.d.ts +2 -3
- package/dist/plugins/pages-node-externals.js +6 -11
- package/dist/plugins/postcss.d.ts +8 -4
- package/dist/plugins/postcss.js +1 -1
- package/dist/plugins/remove-console.d.ts +2 -3
- package/dist/plugins/remove-console.js +0 -1
- package/dist/plugins/require-condition-resolution.d.ts +3 -4
- package/dist/plugins/require-condition-resolution.js +17 -18
- package/dist/plugins/require-context.d.ts +3 -3
- package/dist/plugins/require-context.js +41 -22
- package/dist/plugins/rsc-client-reference-loaders.d.ts +2 -3
- package/dist/plugins/rsc-client-shim-excludes.d.ts +4 -5
- package/dist/plugins/rsc-client-shim-excludes.js +1 -0
- package/dist/plugins/rsc-reference-validation-normalizer.d.ts +2 -3
- package/dist/plugins/sass.d.ts +7 -8
- package/dist/plugins/sass.js +7 -4
- package/dist/plugins/scan-build-css.d.ts +12 -0
- package/dist/plugins/scan-build-css.js +39 -0
- package/dist/plugins/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +7 -6
- package/dist/plugins/strip-server-exports.js +4 -2
- package/dist/plugins/styled-jsx.d.ts +2 -3
- package/dist/plugins/styled-jsx.js +7 -7
- package/dist/plugins/transform-cache.d.ts +2 -3
- package/dist/plugins/transform-result.d.ts +21 -4
- package/dist/plugins/transform-result.js +23 -2
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +16 -7
- package/dist/plugins/typeof-window.js +62 -39
- package/dist/plugins/use-cache-callable.d.ts +2 -5
- package/dist/plugins/use-cache-callable.js +43 -22
- package/dist/plugins/wasm-module-import.d.ts +2 -3
- package/dist/plugins/worker-image-imports.d.ts +2 -3
- package/dist/plugins/worker-image-imports.js +6 -8
- package/dist/routing/app-route-graph.d.ts +18 -19
- package/dist/routing/app-route-graph.js +5 -6
- package/dist/routing/app-route-ids.d.ts +3 -0
- package/dist/routing/app-route-ids.js +6 -0
- package/dist/routing/app-router.d.ts +19 -6
- package/dist/routing/app-router.js +24 -2
- package/dist/routing/file-matcher.d.ts +9 -10
- package/dist/routing/pages-router.d.ts +6 -6
- package/dist/routing/pages-router.js +1 -1
- package/dist/routing/route-matching.d.ts +4 -5
- package/dist/routing/route-matching.js +4 -2
- package/dist/routing/route-pattern.d.ts +13 -14
- package/dist/routing/route-trie.d.ts +5 -6
- package/dist/routing/route-validation.d.ts +3 -4
- package/dist/routing/route-validation.js +12 -11
- package/dist/routing/utils.d.ts +13 -14
- package/dist/server/accept-encoding.d.ts +9 -10
- package/dist/server/api-handler.d.ts +2 -3
- package/dist/server/api-handler.js +9 -6
- package/dist/server/app-action-forwarding.d.ts +3 -4
- package/dist/server/app-action-forwarding.js +1 -1
- package/dist/server/app-action-request.d.ts +2 -3
- package/dist/server/app-bfcache-id.d.ts +4 -4
- package/dist/server/app-bfcache-id.js +7 -1
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- package/dist/server/app-bfcache-identity.js +1 -2
- package/dist/server/app-browser-action-result.d.ts +15 -16
- package/dist/server/app-browser-client-reuse-manifest.d.ts +2 -3
- package/dist/server/app-browser-entry.js +91 -36
- package/dist/server/app-browser-error.d.ts +5 -6
- package/dist/server/app-browser-error.js +9 -3
- package/dist/server/app-browser-history-controller.d.ts +4 -5
- package/dist/server/app-browser-hydration.d.ts +16 -6
- package/dist/server/app-browser-hydration.js +15 -2
- package/dist/server/app-browser-interception-context.d.ts +3 -4
- package/dist/server/app-browser-mpa-navigation.d.ts +4 -5
- package/dist/server/app-browser-navigation-abort.d.ts +3 -4
- package/dist/server/app-browser-navigation-controller.d.ts +8 -8
- package/dist/server/app-browser-navigation-controller.js +9 -5
- package/dist/server/app-browser-navigation-response.d.ts +2 -3
- package/dist/server/app-browser-popstate.d.ts +4 -5
- package/dist/server/app-browser-prefetch-response.d.ts +5 -6
- package/dist/server/app-browser-rsc-redirect.d.ts +4 -5
- package/dist/server/app-browser-server-action-client.d.ts +7 -6
- package/dist/server/app-browser-server-action-client.js +9 -5
- package/dist/server/app-browser-server-action-navigation.d.ts +2 -3
- package/dist/server/app-browser-state.d.ts +17 -17
- package/dist/server/app-browser-state.js +7 -3
- package/dist/server/app-browser-stream.d.ts +5 -6
- package/dist/server/app-browser-stream.js +8 -6
- package/dist/server/app-browser-supplemental-refresh.d.ts +11 -12
- package/dist/server/app-browser-visible-commit.d.ts +6 -7
- package/dist/server/app-client-reference-preloader.d.ts +2 -3
- package/dist/server/app-elements-wire-key.d.ts +25 -0
- package/dist/server/app-elements-wire-key.js +69 -0
- package/dist/server/app-elements-wire.d.ts +34 -53
- package/dist/server/app-elements-wire.js +4 -75
- package/dist/server/app-elements.d.ts +5 -5
- package/dist/server/app-elements.js +1 -1
- package/dist/server/app-fallback-renderer.d.ts +4 -4
- package/dist/server/app-fallback-renderer.js +6 -6
- package/dist/server/app-fetch-tracing.d.ts +15 -0
- package/dist/server/app-fetch-tracing.js +38 -0
- package/dist/server/app-history-state.d.ts +25 -27
- package/dist/server/app-history-state.js +21 -16
- package/dist/server/app-hook-warning-suppression.d.ts +2 -3
- package/dist/server/app-hydration-cache-publication.d.ts +3 -4
- package/dist/server/app-inline-css-client.d.ts +3 -4
- package/dist/server/app-interception-context-header.d.ts +2 -3
- package/dist/server/app-layout-param-observation.d.ts +7 -8
- package/dist/server/app-metadata-tracing.d.ts +12 -0
- package/dist/server/app-metadata-tracing.js +17 -0
- package/dist/server/app-middleware.d.ts +7 -7
- package/dist/server/app-middleware.js +2 -3
- package/dist/server/app-mounted-slots-header.d.ts +2 -3
- package/dist/server/app-mounted-slots-header.js +2 -2
- package/dist/server/app-optimistic-routing.d.ts +10 -11
- package/dist/server/app-optimistic-routing.js +3 -2
- package/dist/server/app-page-boundary-render.d.ts +6 -6
- package/dist/server/app-page-boundary-render.js +10 -4
- package/dist/server/app-page-boundary.d.ts +9 -10
- package/dist/server/app-page-boundary.js +1 -1
- package/dist/server/app-page-cache-finalizer.d.ts +18 -9
- package/dist/server/app-page-cache-finalizer.js +51 -16
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -4
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +95 -24
- package/dist/server/app-page-dispatch.d.ts +34 -12
- package/dist/server/app-page-dispatch.js +181 -64
- package/dist/server/app-page-element-builder.d.ts +13 -11
- package/dist/server/app-page-element-builder.js +104 -61
- package/dist/server/app-page-execution.d.ts +14 -14
- package/dist/server/app-page-execution.js +11 -7
- package/dist/server/app-page-head.d.ts +19 -16
- package/dist/server/app-page-head.js +25 -25
- package/dist/server/app-page-http-access-fallback-metadata.d.ts +6 -5
- package/dist/server/app-page-http-access-fallback-metadata.js +9 -2
- package/dist/server/app-page-method.d.ts +5 -11
- package/dist/server/app-page-method.js +2 -9
- package/dist/server/app-page-params.d.ts +5 -6
- package/dist/server/app-page-ppr-runtime.d.ts +2 -2
- package/dist/server/app-page-probe.d.ts +5 -6
- package/dist/server/app-page-probe.js +5 -4
- package/dist/server/app-page-render-identity.d.ts +4 -5
- package/dist/server/app-page-render-observation.d.ts +8 -9
- package/dist/server/app-page-render-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +41 -6
- package/dist/server/app-page-render.js +171 -24
- package/dist/server/app-page-request.d.ts +10 -9
- package/dist/server/app-page-request.js +16 -12
- package/dist/server/app-page-response.d.ts +20 -9
- package/dist/server/app-page-response.js +30 -12
- package/dist/server/app-page-route-wiring.d.ts +15 -15
- package/dist/server/app-page-route-wiring.js +31 -24
- package/dist/server/app-page-search-params-observation.d.ts +26 -5
- package/dist/server/app-page-search-params-observation.js +43 -7
- package/dist/server/app-page-segment-plan.d.ts +2 -3
- package/dist/server/app-page-segment-state.d.ts +11 -12
- package/dist/server/app-page-stream.d.ts +27 -11
- package/dist/server/app-page-stream.js +34 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +50 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +18 -4
- package/dist/server/app-post-middleware-context.d.ts +2 -3
- package/dist/server/app-ppr-fallback-shell-render.d.ts +3 -4
- package/dist/server/app-ppr-fallback-shell-render.js +3 -2
- package/dist/server/app-ppr-fallback-shell.d.ts +6 -7
- package/dist/server/app-prerender-endpoints.d.ts +5 -5
- package/dist/server/app-prerender-endpoints.js +3 -1
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +24 -9
- package/dist/server/app-render-abort-error.d.ts +3 -0
- package/dist/server/app-render-abort-error.js +8 -0
- package/dist/server/app-render-dependency.d.ts +14 -13
- package/dist/server/app-render-dependency.js +5 -1
- package/dist/server/app-request-context.d.ts +3 -4
- package/dist/server/app-request-stage-context.d.ts +5 -0
- package/dist/server/app-request-stage-context.js +11 -0
- package/dist/server/app-request-stage-dispatch.d.ts +25 -0
- package/dist/server/app-request-stage-dispatch.js +54 -0
- package/dist/server/app-request-stage-independent-entry.d.ts +8 -0
- package/dist/server/app-request-stage-independent-entry.js +112 -0
- package/dist/server/app-response-header-provenance.d.ts +13 -7
- package/dist/server/app-response-header-provenance.js +34 -1
- package/dist/server/app-response-stage-entry.d.ts +9 -0
- package/dist/server/app-response-stage-entry.js +87 -0
- package/dist/server/app-route-handler-cache.d.ts +4 -4
- package/dist/server/app-route-handler-cache.js +51 -35
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +77 -56
- package/dist/server/app-route-handler-execution.d.ts +26 -14
- package/dist/server/app-route-handler-execution.js +94 -28
- package/dist/server/app-route-handler-middleware-context.d.ts +8 -0
- package/dist/server/app-route-handler-middleware-context.js +15 -0
- package/dist/server/app-route-handler-policy.d.ts +11 -11
- package/dist/server/app-route-handler-policy.js +2 -2
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +14 -3
- package/dist/server/app-route-handler-runtime.d.ts +9 -10
- package/dist/server/app-route-handler-runtime.js +20 -16
- package/dist/server/app-route-module-loader.d.ts +6 -7
- package/dist/server/app-route-request-built-ins.d.ts +3 -4
- package/dist/server/app-route-tree-prefetch.d.ts +6 -7
- package/dist/server/app-route-tree-prefetch.js +2 -1
- package/dist/server/app-router-entry.d.ts +4 -1
- package/dist/server/app-router-entry.js +33 -17
- package/dist/server/app-rsc-cache-busting.d.ts +34 -27
- package/dist/server/app-rsc-cache-busting.js +14 -2
- package/dist/server/app-rsc-combined-handler.d.ts +9 -0
- package/dist/server/app-rsc-combined-handler.js +11 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +6 -7
- package/dist/server/app-rsc-error-handler.d.ts +12 -6
- package/dist/server/app-rsc-error-handler.js +15 -6
- package/dist/server/app-rsc-errors.d.ts +11 -9
- package/dist/server/app-rsc-errors.js +14 -16
- package/dist/server/app-rsc-handler.d.ts +32 -6
- package/dist/server/app-rsc-handler.js +425 -64
- package/dist/server/app-rsc-redirect-flight.d.ts +4 -5
- package/dist/server/app-rsc-render-mode.d.ts +8 -9
- package/dist/server/app-rsc-request-normalization.d.ts +3 -3
- package/dist/server/app-rsc-request-normalization.js +5 -3
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +10 -7
- package/dist/server/app-rsc-response-stage.d.ts +6 -0
- package/dist/server/app-rsc-response-stage.js +251 -0
- package/dist/server/app-rsc-route-matching.d.ts +3 -4
- package/dist/server/app-rsc-route-matching.js +3 -2
- package/dist/server/app-rsc-state-fingerprint.d.ts +3 -4
- package/dist/server/app-rsc-vary.d.ts +16 -0
- package/dist/server/app-rsc-vary.js +31 -0
- package/dist/server/app-segment-config.d.ts +119 -7
- package/dist/server/app-segment-config.js +242 -2
- package/dist/server/app-server-action-execution.d.ts +18 -13
- package/dist/server/app-server-action-execution.js +86 -33
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +62 -15
- package/dist/server/app-ssr-error-meta.d.ts +3 -4
- package/dist/server/app-ssr-error-meta.js +2 -1
- package/dist/server/app-ssr-router-instance.d.ts +2 -3
- package/dist/server/app-ssr-search-params-gate.d.ts +20 -0
- package/dist/server/app-ssr-search-params-gate.js +54 -0
- package/dist/server/app-ssr-stream.d.ts +13 -9
- package/dist/server/app-ssr-stream.js +34 -8
- package/dist/server/app-static-generation.d.ts +4 -5
- package/dist/server/app-visited-response-cache.d.ts +11 -12
- package/dist/server/app-visited-response-cache.js +2 -2
- package/dist/server/app-worker-stages.d.ts +112 -0
- package/dist/server/app-worker-stages.js +105 -0
- package/dist/server/artifact-compatibility.d.ts +11 -12
- package/dist/server/before-interactive-head.d.ts +2 -3
- package/dist/server/bfcache-identity.d.ts +7 -8
- package/dist/server/cache-control.d.ts +35 -13
- package/dist/server/cache-control.js +64 -6
- package/dist/server/cache-headers.d.ts +3 -4
- package/dist/server/cache-proof.d.ts +75 -70
- package/dist/server/cache-proof.js +9 -1
- package/dist/server/cacheability-limits.d.ts +4 -5
- package/dist/server/cacheability-limits.js +2 -2
- package/dist/server/cacheability-manifest.d.ts +42 -16
- package/dist/server/cacheability-manifest.js +60 -10
- package/dist/server/cacheability-request.d.ts +37 -8
- package/dist/server/cacheability-request.js +192 -90
- package/dist/server/client-reuse-manifest.d.ts +17 -18
- package/dist/server/client-reuse-manifest.js +2 -2
- package/dist/server/client-trace-metadata.d.ts +9 -6
- package/dist/server/client-trace-metadata.js +27 -15
- package/dist/server/cloudflare-workers-tracing.d.ts +1 -0
- package/dist/server/cloudflare-workers-tracing.js +8 -0
- package/dist/server/config-headers.d.ts +19 -5
- package/dist/server/config-headers.js +25 -11
- package/dist/server/cookie-utils.d.ts +2 -3
- package/dist/server/csp.d.ts +5 -6
- package/dist/server/default-global-error-module.d.ts +2 -3
- package/dist/server/default-global-not-found-module.d.ts +2 -3
- package/dist/server/default-not-found-module.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.d.ts +2 -3
- package/dist/server/defer-until-stream-consumed.js +2 -1
- package/dist/server/dev-initial-server-error.d.ts +3 -4
- package/dist/server/dev-initial-server-error.js +2 -1
- package/dist/server/dev-lockfile.d.ts +7 -8
- package/dist/server/dev-lockfile.js +4 -1
- package/dist/server/dev-module-runner.d.ts +2 -3
- package/dist/server/dev-origin-check.d.ts +5 -6
- package/dist/server/dev-route-files.d.ts +2 -3
- package/dist/server/dev-server.d.ts +4 -5
- package/dist/server/dev-server.js +141 -64
- package/dist/server/dev-stack-sourcemap.d.ts +7 -7
- package/dist/server/dev-stack-sourcemap.js +1 -1
- package/dist/server/document-initial-head.d.ts +3 -4
- package/dist/server/edge-api-runtime.d.ts +4 -5
- package/dist/server/fetch-handler.d.ts +3 -2
- package/dist/server/fetch-handler.js +3 -18
- package/dist/server/file-based-metadata.d.ts +2 -3
- package/dist/server/framework-tracer.d.ts +46 -0
- package/dist/server/framework-tracer.js +125 -0
- package/dist/server/fully-buffered-response.d.ts +11 -0
- package/dist/server/fully-buffered-response.js +19 -0
- package/dist/server/headers.d.ts +56 -61
- package/dist/server/headers.js +22 -31
- package/dist/server/html.d.ts +6 -27
- package/dist/server/html.js +16 -1
- package/dist/server/http-conditional.d.ts +5 -6
- package/dist/server/http-date.d.ts +2 -3
- package/dist/server/http-error-responses.d.ts +9 -10
- package/dist/server/http-error-responses.js +1 -0
- package/dist/server/http-range.d.ts +4 -5
- package/dist/server/hybrid-route-priority.d.ts +4 -5
- package/dist/server/image-optimization.d.ts +20 -21
- package/dist/server/implicit-tags.d.ts +3 -4
- package/dist/server/instrumentation-runtime.d.ts +17 -21
- package/dist/server/instrumentation-runtime.js +26 -8
- package/dist/server/instrumentation.d.ts +26 -30
- package/dist/server/instrumentation.js +18 -23
- package/dist/server/isr-cache.d.ts +30 -27
- package/dist/server/isr-cache.js +23 -70
- package/dist/server/isr-decision.d.ts +4 -4
- package/dist/server/metadata-route-build-data.d.ts +4 -5
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +158 -35
- package/dist/server/metadata-routes.d.ts +18 -19
- package/dist/server/middleware-matcher-pattern.d.ts +6 -7
- package/dist/server/middleware-matcher.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.d.ts +6 -7
- package/dist/server/middleware-path-to-regexp.js +11 -9
- package/dist/server/middleware-response-headers.d.ts +3 -4
- package/dist/server/middleware-runtime.d.ts +7 -8
- package/dist/server/middleware-runtime.js +36 -7
- package/dist/server/middleware.d.ts +5 -5
- package/dist/server/multi-stage.d.ts +141 -0
- package/dist/server/multi-stage.js +8 -0
- package/dist/server/navigation-planner.d.ts +26 -26
- package/dist/server/navigation-trace.d.ts +11 -12
- package/dist/server/next-error-digest.d.ts +4 -5
- package/dist/server/normalize-path.d.ts +5 -6
- package/dist/server/open-redirect.d.ts +2 -3
- package/dist/server/opentelemetry-api.d.ts +59 -0
- package/dist/server/opentelemetry-api.js +53 -0
- package/dist/server/opentelemetry-tracing.d.ts +5 -0
- package/dist/server/opentelemetry-tracing.js +83 -0
- package/dist/server/operation-token.d.ts +11 -12
- package/dist/server/otel-tracer-extension.d.ts +7 -9
- package/dist/server/otel-tracer-extension.js +37 -36
- package/dist/server/pages-api-route.d.ts +5 -4
- package/dist/server/pages-api-route.js +28 -9
- package/dist/server/pages-asset-tags.d.ts +7 -6
- package/dist/server/pages-asset-tags.js +104 -18
- package/dist/server/pages-body-parser-config.d.ts +4 -5
- package/dist/server/pages-body-parser-config.js +4 -4
- package/dist/server/pages-client-assets.d.ts +13 -5
- package/dist/server/pages-data-route.d.ts +11 -12
- package/dist/server/pages-data-route.js +1 -1
- package/dist/server/pages-default-404.d.ts +3 -4
- package/dist/server/pages-dev-hydration.d.ts +9 -4
- package/dist/server/pages-dev-hydration.js +19 -7
- package/dist/server/pages-dev-module-url.d.ts +3 -4
- package/dist/server/pages-dev-stylesheets.d.ts +5 -6
- package/dist/server/pages-document-asset-props.d.ts +6 -7
- package/dist/server/pages-document-initial-props.d.ts +5 -5
- package/dist/server/pages-document-initial-props.js +4 -2
- package/dist/server/pages-execution-tracing.d.ts +40 -0
- package/dist/server/pages-execution-tracing.js +80 -0
- package/dist/server/pages-get-initial-props.d.ts +9 -10
- package/dist/server/pages-i18n.d.ts +8 -8
- package/dist/server/pages-media-type.d.ts +4 -5
- package/dist/server/pages-node-compat.d.ts +11 -10
- package/dist/server/pages-node-compat.js +12 -4
- package/dist/server/pages-page-data.d.ts +23 -19
- package/dist/server/pages-page-data.js +82 -75
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +103 -47
- package/dist/server/pages-page-method.d.ts +2 -3
- package/dist/server/pages-page-response.d.ts +14 -10
- package/dist/server/pages-page-response.js +52 -32
- package/dist/server/pages-preview.d.ts +10 -11
- package/dist/server/pages-readiness.d.ts +2 -3
- package/dist/server/pages-request-pipeline.d.ts +15 -12
- package/dist/server/pages-request-pipeline.js +80 -35
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +316 -0
- package/dist/server/pages-response-stage-entry.d.ts +11 -0
- package/dist/server/pages-response-stage-entry.js +106 -0
- package/dist/server/pages-response-stage.d.ts +31 -0
- package/dist/server/pages-response-stage.js +49 -0
- package/dist/server/pages-revalidate.d.ts +3 -4
- package/dist/server/pages-revalidate.js +9 -4
- package/dist/server/pages-route-data-kind.d.ts +18 -0
- package/dist/server/pages-route-data-kind.js +11 -0
- package/dist/server/pages-router-entry.d.ts +1 -25
- package/dist/server/pages-router-entry.js +35 -148
- package/dist/server/pages-serializable-props.d.ts +3 -4
- package/dist/server/pregenerated-concrete-paths.d.ts +9 -7
- package/dist/server/pregenerated-concrete-paths.js +12 -6
- package/dist/server/prerender-cache-life-header.d.ts +3 -4
- package/dist/server/prerender-manifest.d.ts +17 -11
- package/dist/server/prerender-manifest.js +7 -4
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -3
- package/dist/server/prerender-work-unit-setup.d.ts +2 -3
- package/dist/server/prerender-work-unit-setup.js +5 -5
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +127 -44
- package/dist/server/proxy-trust.d.ts +5 -6
- package/dist/server/request-log.d.ts +3 -4
- package/dist/server/request-pipeline.d.ts +16 -16
- package/dist/server/request-pipeline.js +7 -2
- package/dist/server/request-stage.d.ts +5 -0
- package/dist/server/request-stage.js +7 -0
- package/dist/server/request-tracing.d.ts +22 -0
- package/dist/server/request-tracing.js +180 -0
- package/dist/server/response-stage-cacheability.d.ts +37 -0
- package/dist/server/response-stage-cacheability.js +55 -0
- package/dist/server/response-stage-policy.d.ts +23 -0
- package/dist/server/response-stage-policy.js +89 -0
- package/dist/server/response-stage.d.ts +5 -0
- package/dist/server/response-stage.js +7 -0
- package/dist/server/response-start-tracing.d.ts +14 -0
- package/dist/server/response-start-tracing.js +80 -0
- package/dist/server/revalidation-host.d.ts +2 -3
- package/dist/server/revalidation-host.js +1 -1
- package/dist/server/revalidation-request.d.ts +8 -0
- package/dist/server/revalidation-request.js +37 -0
- package/dist/server/rsc-completion-metadata.d.ts +6 -7
- package/dist/server/rsc-stream-hints.d.ts +18 -7
- package/dist/server/rsc-stream-hints.js +70 -35
- package/dist/server/seed-cache.d.ts +2 -3
- package/dist/server/seed-cache.js +8 -7
- package/dist/server/server-action-not-found.d.ts +5 -6
- package/dist/server/server-globals.d.ts +2 -3
- package/dist/server/skip-cache-proof.d.ts +4 -4
- package/dist/server/socket-error-backstop.d.ts +5 -6
- package/dist/server/socket-error-backstop.js +1 -1
- package/dist/server/static-file-cache.d.ts +5 -6
- package/dist/server/static-file-cache.js +9 -7
- package/dist/server/static-file-signal.d.ts +9 -6
- package/dist/server/static-file-signal.js +51 -2
- package/dist/server/static-layout-client-reuse-proof.d.ts +4 -5
- package/dist/server/streaming-metadata.d.ts +2 -3
- package/dist/server/tracer.d.ts +5 -0
- package/dist/server/tracer.js +13 -0
- package/dist/server/worker-prerender-discovery.d.ts +5 -6
- package/dist/server/worker-revalidation-context.d.ts +4 -4
- package/dist/server/worker-revalidation-context.js +6 -5
- package/dist/server/worker-stages.d.ts +43 -0
- package/dist/server/worker-stages.js +25 -0
- package/dist/server/worker-utils.d.ts +5 -6
- package/dist/server/worker-utils.js +2 -1
- package/dist/server/workers-tracing.d.ts +34 -0
- package/dist/server/workers-tracing.js +67 -0
- package/dist/shims/amp.d.ts +3 -4
- package/dist/shims/app-router-scroll-state.d.ts +9 -10
- package/dist/shims/app-router-scroll.d.ts +4 -5
- package/dist/shims/app-router-scroll.js +2 -1
- package/dist/shims/app.d.ts +5 -6
- package/dist/shims/before-interactive-context.d.ts +5 -6
- package/dist/shims/cache-callable-runtime.d.ts +44 -4
- package/dist/shims/cache-callable-runtime.js +168 -8
- package/dist/shims/cache-for-request.d.ts +2 -3
- package/dist/shims/cache-handler.d.ts +33 -20
- package/dist/shims/cache-handler.js +61 -2
- package/dist/shims/cache-request-state.d.ts +26 -38
- package/dist/shims/cache-request-state.js +2 -13
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +110 -28
- package/dist/shims/cache.d.ts +17 -16
- package/dist/shims/cache.js +19 -15
- package/dist/shims/cacheability-classification.d.ts +50 -29
- package/dist/shims/cacheability-classification.js +29 -14
- package/dist/shims/cdn-cache-state.d.ts +13 -0
- package/dist/shims/cdn-cache-state.js +23 -0
- package/dist/shims/cdn-cache.d.ts +59 -21
- package/dist/shims/cdn-cache.js +31 -47
- package/dist/shims/client-hook-error.d.ts +3 -4
- package/dist/shims/client-locale.d.ts +2 -3
- package/dist/shims/client-page-root.d.ts +24 -0
- package/dist/shims/client-page-root.js +121 -0
- package/dist/shims/compat-router.d.ts +2 -3
- package/dist/shims/config.d.ts +3 -4
- package/dist/shims/constants.d.ts +73 -74
- package/dist/shims/constants.js +1 -1
- package/dist/shims/default-not-found.d.ts +2 -3
- package/dist/shims/document.d.ts +9 -9
- package/dist/shims/dynamic-preload-chunks.d.ts +2 -3
- package/dist/shims/dynamic-preload-chunks.js +17 -13
- package/dist/shims/dynamic.d.ts +3 -3
- package/dist/shims/error-boundary-navigation.d.ts +3 -4
- package/dist/shims/error-boundary.d.ts +17 -18
- package/dist/shims/error-boundary.js +17 -11
- package/dist/shims/error.d.ts +5 -19
- package/dist/shims/error.js +17 -10
- package/dist/shims/error.react-server.d.ts +4 -7
- package/dist/shims/error.react-server.js +4 -1
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +46 -20
- package/dist/shims/font-google-base.d.ts +9 -9
- package/dist/shims/font-google-base.js +2 -1
- package/dist/shims/font-local.d.ts +3 -3
- package/dist/shims/font-local.js +1 -1
- package/dist/shims/font-utils.d.ts +14 -15
- package/dist/shims/form.d.ts +2 -2
- package/dist/shims/form.js +10 -7
- package/dist/shims/hash-scroll.d.ts +5 -6
- package/dist/shims/head-state.d.ts +4 -5
- package/dist/shims/head.d.ts +16 -16
- package/dist/shims/head.js +5 -4
- package/dist/shims/headers.d.ts +44 -73
- package/dist/shims/headers.js +87 -144
- package/dist/shims/i18n-context.d.ts +5 -6
- package/dist/shims/i18n-state.d.ts +4 -5
- package/dist/shims/image-config.d.ts +5 -6
- package/dist/shims/image-config.js +2 -0
- package/dist/shims/image.d.ts +5 -5
- package/dist/shims/image.js +12 -8
- package/dist/shims/internal/als-registry.d.ts +4 -5
- package/dist/shims/internal/api-utils.d.ts +3 -4
- package/dist/shims/internal/app-page-props-cache-key.d.ts +32 -4
- package/dist/shims/internal/app-page-props-cache-key.js +53 -1
- package/dist/shims/internal/app-prefetch-fetch-queue.d.ts +5 -6
- package/dist/shims/internal/app-prefetch-rsc-request.d.ts +5 -17
- package/dist/shims/internal/app-prefetch-rsc-request.js +5 -14
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -8
- package/dist/shims/internal/app-route-prefetch-policy.js +0 -1
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- package/dist/shims/internal/cache-context-accessor.d.ts +16 -0
- package/dist/shims/internal/cache-context-accessor.js +15 -0
- package/dist/shims/internal/cookie-serialize.d.ts +4 -5
- package/dist/shims/internal/format-url-object.d.ts +7 -0
- package/dist/shims/internal/format-url-object.js +53 -0
- package/dist/shims/internal/headers-state.d.ts +74 -0
- package/dist/shims/internal/headers-state.js +157 -0
- package/dist/shims/internal/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +3 -2
- package/dist/shims/internal/interpolate-as.d.ts +5 -6
- package/dist/shims/internal/interpolate-as.js +4 -2
- package/dist/shims/internal/link-status-registry.d.ts +5 -6
- package/dist/shims/internal/make-hanging-promise.d.ts +3 -4
- package/dist/shims/internal/navigation-untracked.d.ts +2 -3
- package/dist/shims/internal/normalize-router-href.d.ts +15 -0
- package/dist/shims/internal/normalize-router-href.js +41 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +8 -9
- package/dist/shims/internal/pages-data-target.d.ts +8 -6
- package/dist/shims/internal/pages-data-target.js +32 -36
- package/dist/shims/internal/pages-data-url.d.ts +4 -5
- package/dist/shims/internal/pages-data-url.js +2 -1
- package/dist/shims/internal/pages-router-accessor.d.ts +3 -4
- package/dist/shims/internal/pages-router-components.d.ts +3 -4
- package/dist/shims/internal/route-pattern-for-warning.d.ts +5 -6
- package/dist/shims/internal/route-pattern-for-warning.js +3 -3
- package/dist/shims/internal/router-context.d.ts +2 -3
- package/dist/shims/internal/thenable-well-known-properties.d.ts +10 -0
- package/dist/shims/internal/thenable-well-known-properties.js +33 -0
- package/dist/shims/internal/utils.d.ts +7 -8
- package/dist/shims/internal/work-unit-async-storage.d.ts +10 -11
- package/dist/shims/layout-segment-context.d.ts +3 -4
- package/dist/shims/link-prefetch.d.ts +9 -10
- package/dist/shims/link.d.ts +4 -4
- package/dist/shims/link.js +56 -116
- package/dist/shims/metadata.d.ts +15 -16
- package/dist/shims/metadata.js +40 -36
- package/dist/shims/navigation-context-accessors.d.ts +9 -0
- package/dist/shims/navigation-context-accessors.js +19 -0
- package/dist/shims/navigation-context-state.d.ts +27 -18
- package/dist/shims/navigation-errors.d.ts +18 -19
- package/dist/shims/navigation-state.d.ts +6 -7
- package/dist/shims/navigation.d.ts +80 -68
- package/dist/shims/navigation.js +26 -18
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/offline.d.ts +2 -3
- package/dist/shims/og.d.ts +2 -2
- package/dist/shims/pages-router-runtime.d.ts +4 -5
- package/dist/shims/ppr-fallback-shell.d.ts +13 -14
- package/dist/shims/readonly-url-search-params.d.ts +2 -3
- package/dist/shims/request-context.d.ts +5 -6
- package/dist/shims/request-state-types.d.ts +2 -1
- package/dist/shims/root-params.d.ts +14 -15
- package/dist/shims/root-params.js +1 -1
- package/dist/shims/router-state.d.ts +5 -6
- package/dist/shims/router-state.js +1 -1
- package/dist/shims/router.d.ts +22 -21
- package/dist/shims/router.js +339 -164
- package/dist/shims/script-nonce-context.d.ts +8 -6
- package/dist/shims/script-nonce-context.js +15 -6
- package/dist/shims/script.d.ts +4 -4
- package/dist/shims/script.js +9 -7
- package/dist/shims/search-params-gate.d.ts +35 -0
- package/dist/shims/search-params-gate.js +32 -0
- package/dist/shims/server.d.ts +19 -51
- package/dist/shims/server.js +66 -30
- package/dist/shims/slot.d.ts +33 -15
- package/dist/shims/slot.js +41 -9
- package/dist/shims/streamed-icons.d.ts +3 -4
- package/dist/shims/thenable-params.d.ts +5 -7
- package/dist/shims/thenable-params.js +3 -24
- package/dist/shims/unified-request-context.d.ts +35 -32
- package/dist/shims/unified-request-context.js +34 -24
- package/dist/shims/unrecognized-action-error.d.ts +3 -4
- package/dist/shims/url-safety.d.ts +5 -6
- package/dist/shims/url-utils.d.ts +12 -13
- package/dist/shims/use-merged-ref.d.ts +2 -3
- package/dist/shims/user-agent.d.ts +31 -0
- package/dist/shims/user-agent.js +16 -0
- package/dist/shims/web-vitals.d.ts +2 -2
- package/dist/typegen.d.ts +3 -4
- package/dist/utils/asset-prefix.d.ts +7 -8
- package/dist/utils/base-path.d.ts +5 -6
- package/dist/utils/built-asset-url.d.ts +2 -3
- package/dist/utils/built-asset-url.js +1 -1
- package/dist/utils/cache-control-metadata.d.ts +4 -5
- package/dist/utils/client-build-manifest.d.ts +6 -7
- package/dist/utils/client-build-manifest.js +2 -1
- package/dist/utils/client-entry-manifest.d.ts +6 -7
- package/dist/utils/client-runtime-metadata.d.ts +8 -3
- package/dist/utils/client-runtime-metadata.js +18 -1
- package/dist/utils/commonjs-loader.d.ts +4 -5
- package/dist/utils/compare.d.ts +2 -3
- package/dist/utils/deployment-id.d.ts +6 -7
- package/dist/utils/dev-error-recovery-event.d.ts +2 -3
- package/dist/utils/dev-stack-sourcemap-endpoint.d.ts +2 -3
- package/dist/utils/domain-locale.d.ts +7 -8
- package/dist/utils/encode-cache-tag.d.ts +4 -4
- package/dist/utils/encode-cache-tag.js +11 -1
- package/dist/utils/error-cause.d.ts +2 -3
- package/dist/utils/external-url.d.ts +2 -3
- package/dist/utils/has-trailing-comma.d.ts +3 -4
- package/dist/utils/hash.d.ts +3 -4
- package/dist/utils/html-limited-bots.d.ts +3 -4
- package/dist/utils/lazy-chunks.d.ts +8 -9
- package/dist/utils/lazy-chunks.js +4 -4
- package/dist/utils/manifest-paths.d.ts +5 -6
- package/dist/utils/mdx-scan.d.ts +11 -4
- package/dist/utils/mdx-scan.js +27 -1
- package/dist/utils/middleware-request-headers.d.ts +7 -6
- package/dist/utils/middleware-request-headers.js +6 -1
- package/dist/utils/navigation-signal.d.ts +3 -3
- package/dist/utils/navigation-signal.js +16 -1
- package/dist/utils/number.d.ts +2 -3
- package/dist/utils/package-name.d.ts +3 -4
- package/dist/utils/parse-cookie.d.ts +4 -5
- package/dist/utils/path.d.ts +8 -9
- package/dist/utils/plugin-options.d.ts +2 -3
- package/dist/utils/precompressed-variant.d.ts +3 -4
- package/dist/utils/prerender-output-paths.d.ts +4 -5
- package/dist/utils/project.d.ts +19 -30
- package/dist/utils/project.js +20 -29
- package/dist/utils/promise.d.ts +2 -3
- package/dist/utils/protocol-headers.d.ts +14 -15
- package/dist/utils/public-file-path.d.ts +2 -3
- package/dist/utils/public-routes.d.ts +2 -3
- package/dist/utils/query.d.ts +14 -9
- package/dist/utils/query.js +22 -1
- package/dist/utils/react-compiler-support.d.ts +6 -7
- package/dist/utils/react-version.d.ts +4 -3
- package/dist/utils/react-version.js +19 -1
- package/dist/utils/record.d.ts +2 -3
- package/dist/utils/redirect-digest.d.ts +3 -4
- package/dist/utils/regex-safety.d.ts +4 -5
- package/dist/utils/regex.d.ts +2 -3
- package/dist/utils/safe-json-file.d.ts +2 -3
- package/dist/utils/sorted-array.d.ts +2 -3
- package/dist/utils/text-stream.d.ts +3 -4
- package/dist/utils/vinext-root.d.ts +2 -3
- package/dist/utils/virtual-module.d.ts +3 -4
- package/dist/utils/vite-cli-invocation.d.ts +21 -0
- package/dist/utils/vite-cli-invocation.js +151 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +51 -6
- package/dist/server/metadata-route-cache-policy.d.ts +0 -6
- package/dist/server/metadata-route-cache-policy.js +0 -6
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
|
-
import { NODE_MODULES_PATH_RE, isPathInside, stripViteModuleQuery } from "../utils/path.js";
|
|
3
2
|
import { magicStringTransformResult } from "./transform-result.js";
|
|
3
|
+
import { NODE_MODULES_PATH_RE } from "../utils/path.js";
|
|
4
4
|
import { createRequire } from "node:module";
|
|
5
|
-
import { parseAstAsync } from "vite";
|
|
6
5
|
import { pathToFileURL } from "node:url";
|
|
6
|
+
import { parseAstAsync } from "vite";
|
|
7
|
+
import { createHmac, randomBytes } from "node:crypto";
|
|
7
8
|
//#region src/plugins/use-cache-callable.ts
|
|
8
9
|
const PLUGIN_NAME = "vinext:server-function-directives";
|
|
9
10
|
const SOURCE_MODULE_ID_RE = /\.(?:tsx?|jsx?|mjs)(?:\?.*)?$/;
|
|
@@ -43,13 +44,6 @@ function acceptsSecondArgument(meta) {
|
|
|
43
44
|
if (node?.type !== "FunctionDeclaration" && node?.type !== "FunctionExpression" && node?.type !== "ArrowFunctionExpression") return true;
|
|
44
45
|
return node.params.length >= 2 || node.params.some((parameter) => parameter.type === "RestElement");
|
|
45
46
|
}
|
|
46
|
-
function isAppPageDefaultExport(options, id, name, isModuleDirective) {
|
|
47
|
-
const appDir = options.getAppDir();
|
|
48
|
-
if (!isModuleDirective || name !== "default" || !appDir) return false;
|
|
49
|
-
const modulePath = stripViteModuleQuery(id);
|
|
50
|
-
const moduleFileName = path.basename(modulePath);
|
|
51
|
-
return isPathInside(appDir, modulePath) && path.parse(moduleFileName).name === "page" && options.matchesPageExtension(moduleFileName);
|
|
52
|
-
}
|
|
53
47
|
function shouldTransformModuleExport(name, id, meta) {
|
|
54
48
|
if (meta.isFunction === false && (name !== "default" && meta.valueNode?.type === "Literal" || meta.valueNode?.type === "ObjectExpression" || meta.valueNode?.type === "ArrayExpression")) return false;
|
|
55
49
|
if (/\/(layout|template)\.(tsx?|jsx?|mjs)$/.test(id) && name === "default") return false;
|
|
@@ -65,11 +59,21 @@ function hasFunctionDirective(meta, directive) {
|
|
|
65
59
|
if (node?.type !== "FunctionDeclaration" && node?.type !== "FunctionExpression" && node?.type !== "ArrowFunctionExpression" || node.body.type !== "BlockStatement") return false;
|
|
66
60
|
return node.body.body.some((statement) => statement.type === "ExpressionStatement" && "directive" in statement && statement.directive === directive);
|
|
67
61
|
}
|
|
68
|
-
function
|
|
62
|
+
function getFunctionDirectiveExportNames(transforms, ast, directive) {
|
|
63
|
+
const names = /* @__PURE__ */ new Set();
|
|
64
|
+
for (const group of transforms.scanModuleExports(ast)) {
|
|
65
|
+
const entries = group.type === "declaration" ? [group.export] : group.type === "variable-declaration" ? group.declarators.flatMap((declarator) => declarator.exports) : group.type === "specifiers" ? group.exports : group.type === "default" ? [{
|
|
66
|
+
exportName: "default",
|
|
67
|
+
meta: group.meta
|
|
68
|
+
}] : [];
|
|
69
|
+
for (const entry of entries) if (hasFunctionDirective(entry.meta, directive)) names.add(entry.exportName);
|
|
70
|
+
}
|
|
71
|
+
return names;
|
|
72
|
+
}
|
|
73
|
+
function getCacheWrapperOptions(meta) {
|
|
69
74
|
const argumentCount = getArgumentCount(meta);
|
|
70
75
|
return {
|
|
71
76
|
acceptsSecondArgument: acceptsSecondArgument(meta),
|
|
72
|
-
...isAppPageDefaultExport(options, id, name, isModuleDirective) ? { appPageDefaultExport: true } : {},
|
|
73
77
|
...argumentCount === void 0 ? {} : { argumentCount }
|
|
74
78
|
};
|
|
75
79
|
}
|
|
@@ -78,6 +82,7 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
78
82
|
const transformsPath = resolvePluginRscModule(options.projectRoot, "@vitejs/plugin-rsc/transforms");
|
|
79
83
|
const rscModule = await import(pathToFileURL(rscModulePath).href);
|
|
80
84
|
const transforms = await import(pathToFileURL(transformsPath).href);
|
|
85
|
+
const referenceSecret = randomBytes(32);
|
|
81
86
|
let manager;
|
|
82
87
|
return {
|
|
83
88
|
name: PLUGIN_NAME,
|
|
@@ -109,6 +114,8 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
109
114
|
const useServerBoundary = transforms.hasDirective(ast.body, "use server");
|
|
110
115
|
if (moduleDirective && useServerBoundary) throw new Error(`A module cannot contain both ${JSON.stringify(moduleDirective)} and "use server" directives.`);
|
|
111
116
|
const reference = manager.serverReferences.resolve(id, "rsc");
|
|
117
|
+
const relativeImportId = manager.toRelativeId(reference.importId);
|
|
118
|
+
const secureExportName = (name) => `$$vinext_cache_${createHmac("sha256", referenceSecret).update(relativeImportId).update("\0").update(name).digest("hex")}`;
|
|
112
119
|
if (!(this.environment.name === "rsc")) {
|
|
113
120
|
if (useServerBoundary) {
|
|
114
121
|
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
@@ -126,6 +133,7 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
126
133
|
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
127
134
|
return;
|
|
128
135
|
}
|
|
136
|
+
const useServerExportNames = getFunctionDirectiveExportNames(transforms, ast, "use server");
|
|
129
137
|
const result = transforms.transformDirectiveProxyExport(ast, {
|
|
130
138
|
code,
|
|
131
139
|
directive: moduleDirective,
|
|
@@ -134,7 +142,7 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
134
142
|
validateModuleExport(transforms, meta);
|
|
135
143
|
return true;
|
|
136
144
|
},
|
|
137
|
-
runtime: (name) => `$$ReactClient.createServerReference(${JSON.stringify(`${reference.referenceKey}#${name}`)},$$ReactClient.callServer,undefined,${this.environment.mode === "dev" ? "$$ReactClient.findSourceMapURL" : "undefined"},${JSON.stringify(name)})`
|
|
145
|
+
runtime: (name) => `$$ReactClient.createServerReference(${JSON.stringify(`${reference.referenceKey}#${useServerExportNames.has(name) ? name : secureExportName(name)}`)},$$ReactClient.callServer,undefined,${this.environment.mode === "dev" ? "$$ReactClient.findSourceMapURL" : "undefined"},${JSON.stringify(name)})`
|
|
138
146
|
});
|
|
139
147
|
if (!result?.output.hasChanged()) {
|
|
140
148
|
manager.serverReferences.deleteClaim(PLUGIN_NAME, id);
|
|
@@ -142,7 +150,7 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
142
150
|
}
|
|
143
151
|
manager.serverReferences.replaceClaim(PLUGIN_NAME, id, {
|
|
144
152
|
...reference,
|
|
145
|
-
exportNames: result.exportNames
|
|
153
|
+
exportNames: result.exportNames.map((name) => useServerExportNames.has(name) ? name : secureExportName(name))
|
|
146
154
|
});
|
|
147
155
|
const runtimeEnvironment = this.environment.name === "client" ? "browser" : "ssr";
|
|
148
156
|
result.output.prepend(`import * as $$ReactClient from "@vitejs/plugin-rsc/react/${runtimeEnvironment}";\n`);
|
|
@@ -151,16 +159,23 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
151
159
|
source: id
|
|
152
160
|
});
|
|
153
161
|
}
|
|
154
|
-
const
|
|
162
|
+
const secureExports = /* @__PURE__ */ new Set();
|
|
163
|
+
const wrap = (value, name, directiveMatch, meta) => {
|
|
155
164
|
const variant = directiveMatch[1] ?? "";
|
|
156
|
-
const
|
|
165
|
+
const secureName = secureExportName(name);
|
|
166
|
+
secureExports.add(secureName);
|
|
167
|
+
const wrapperOptions = {
|
|
168
|
+
...getCacheWrapperOptions(meta),
|
|
169
|
+
serverReferenceId: `${reference.referenceKey}#${secureName}`
|
|
170
|
+
};
|
|
157
171
|
return `$$cacheRuntime.registerCachedFunction(${value}, ${JSON.stringify(`${id}:${name}`)}, ${JSON.stringify(variant)}, ${JSON.stringify(wrapperOptions)})`;
|
|
158
172
|
};
|
|
159
173
|
let needsReactServer = false;
|
|
160
|
-
const runtime = (value, name, directiveMatch, meta
|
|
161
|
-
const cached = wrap(value, name, directiveMatch, meta
|
|
174
|
+
const runtime = (value, name, directiveMatch, meta) => {
|
|
175
|
+
const cached = wrap(value, name, directiveMatch, meta);
|
|
176
|
+
const secureName = secureExportName(name);
|
|
162
177
|
needsReactServer = true;
|
|
163
|
-
return
|
|
178
|
+
return `(${secureName} = $$VinextReactServer.registerServerReference(${cached}, ${JSON.stringify(reference.referenceKey)}, ${JSON.stringify(secureName)}))`;
|
|
164
179
|
};
|
|
165
180
|
const result = moduleDirective ? transforms.transformWrapExport(code, ast, {
|
|
166
181
|
filter: (name, meta) => {
|
|
@@ -168,12 +183,13 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
168
183
|
validateModuleExport(transforms, meta);
|
|
169
184
|
return true;
|
|
170
185
|
},
|
|
171
|
-
runtime: (value, name, meta) => runtime(value, name, matchUseCacheDirective(moduleDirective), meta
|
|
186
|
+
runtime: (value, name, meta) => runtime(value, name, matchUseCacheDirective(moduleDirective), meta)
|
|
172
187
|
}) : transforms.transformHoistInlineDirective(code, ast, {
|
|
173
188
|
directive: USE_CACHE_DIRECTIVE_CANDIDATE,
|
|
174
189
|
rejectNonAsyncFunction: true,
|
|
175
190
|
hoistRuntime: true,
|
|
176
|
-
|
|
191
|
+
noExport: true,
|
|
192
|
+
runtime: (value, name, meta) => runtime(value, name, matchUseCacheDirective(meta.directiveMatch[0]), meta),
|
|
177
193
|
encode: (value) => `$$cacheRuntime.encryptCacheCaptures(${value})`,
|
|
178
194
|
decode: (value) => value
|
|
179
195
|
});
|
|
@@ -183,10 +199,15 @@ async function createUseCacheCallablePlugin(options) {
|
|
|
183
199
|
}
|
|
184
200
|
manager.serverReferences.replaceClaim(PLUGIN_NAME, id, {
|
|
185
201
|
...reference,
|
|
186
|
-
exportNames:
|
|
202
|
+
exportNames: [...secureExports]
|
|
187
203
|
});
|
|
188
204
|
const importPosition = ast.body.find((node) => !("directive" in node))?.start ?? code.length;
|
|
189
|
-
result.output.prependLeft(importPosition, [
|
|
205
|
+
result.output.prependLeft(importPosition, [
|
|
206
|
+
`import * as $$cacheRuntime from ${JSON.stringify(options.cacheRuntime)};`,
|
|
207
|
+
needsReactServer && `import * as $$VinextReactServer from "@vitejs/plugin-rsc/react/rsc/server";`,
|
|
208
|
+
secureExports.size > 0 && `let ${[...secureExports].join(",")};`
|
|
209
|
+
].filter(Boolean).join("\n") + "\n");
|
|
210
|
+
if (secureExports.size > 0) result.output.append(`\nexport { ${[...secureExports].join(",")} };\n`);
|
|
190
211
|
return magicStringTransformResult(result.output, {
|
|
191
212
|
hires: "boundary",
|
|
192
213
|
source: id
|
|
@@ -5,8 +5,7 @@ import { Plugin } from "vite";
|
|
|
5
5
|
* Vite worker graphs. Worker builds use their own plugin container, so the
|
|
6
6
|
* top-level vinext:image-imports plugin cannot perform this transform.
|
|
7
7
|
*/
|
|
8
|
-
declare function createWorkerImageImportsPlugin(options?: {
|
|
8
|
+
export declare function createWorkerImageImportsPlugin(options?: {
|
|
9
9
|
deploymentId?: string;
|
|
10
10
|
}): Plugin;
|
|
11
|
-
//#endregion
|
|
12
|
-
export { createWorkerImageImportsPlugin };
|
|
11
|
+
//#endregion
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import path, { toSlash } from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
|
+
import { staticStringValue, walkAst } from "./ast-utils.js";
|
|
3
|
+
import { magicStringTransformResult } from "./transform-result.js";
|
|
2
4
|
import { appendDeploymentIdQuery } from "../utils/deployment-id.js";
|
|
3
5
|
import { NODE_MODULES_PATH_RE, stripViteModuleQuery } from "../utils/path.js";
|
|
4
|
-
import { magicStringTransformResult } from "./transform-result.js";
|
|
5
|
-
import { staticStringValue, walkAst } from "./ast-utils.js";
|
|
6
6
|
import fs from "node:fs";
|
|
7
7
|
import { parseAst } from "vite";
|
|
8
8
|
import MagicString from "magic-string";
|
|
@@ -78,9 +78,8 @@ function createWorkerImageImportsPlugin(options = {}) {
|
|
|
78
78
|
}
|
|
79
79
|
const output = new MagicString(code);
|
|
80
80
|
const imageImports = [];
|
|
81
|
-
walkAst(ast, (
|
|
82
|
-
|
|
83
|
-
if (node.type === "ImportExpression" && typeof node.start === "number" && typeof node.end === "number" && node.source?.type === "Literal" && typeof node.source.value === "string" && WORKER_IMAGE_EXTENSION_RE.test(node.source.value)) {
|
|
81
|
+
walkAst(ast, (node) => {
|
|
82
|
+
if (node.type === "ImportExpression" && node.source.type === "Literal" && typeof node.source.value === "string" && WORKER_IMAGE_EXTENSION_RE.test(node.source.value)) {
|
|
84
83
|
imageImports.push({
|
|
85
84
|
end: node.end,
|
|
86
85
|
importPath: node.source.value,
|
|
@@ -116,11 +115,10 @@ function createWorkerImageImportsPlugin(options = {}) {
|
|
|
116
115
|
}
|
|
117
116
|
const output = new MagicString(code);
|
|
118
117
|
let changed = false;
|
|
119
|
-
walkAst(ast, (
|
|
120
|
-
const node = value;
|
|
118
|
+
walkAst(ast, (node) => {
|
|
121
119
|
const source = node.type === "ImportExpression" || node.type === "ImportDeclaration" || node.type === "ExportNamedDeclaration" || node.type === "ExportAllDeclaration" ? node.source : null;
|
|
122
120
|
const specifier = staticStringValue(source);
|
|
123
|
-
if (specifier !== null && chunkSpecifiers.has(specifier) &&
|
|
121
|
+
if (specifier !== null && chunkSpecifiers.has(specifier) && source) {
|
|
124
122
|
output.overwrite(source.start, source.end, JSON.stringify(appendDeploymentIdQuery(specifier, options.deploymentId)));
|
|
125
123
|
changed = true;
|
|
126
124
|
return false;
|
|
@@ -119,7 +119,7 @@ type ParallelSlot = {
|
|
|
119
119
|
*/
|
|
120
120
|
slotParamNames?: string[];
|
|
121
121
|
};
|
|
122
|
-
type AppRoute = {
|
|
122
|
+
export type AppRoute = {
|
|
123
123
|
/** Graph-owned semantic identities. Required on AppRouteGraphRoute. */
|
|
124
124
|
ids?: AppRouteSemanticIds;
|
|
125
125
|
/** URL pattern, e.g. "/" or "/about" or "/blog/:slug" */
|
|
@@ -225,7 +225,7 @@ type AppRoute = {
|
|
|
225
225
|
/** Pre-split pattern segments (computed once at scan time, reused per request) */
|
|
226
226
|
patternParts: string[];
|
|
227
227
|
};
|
|
228
|
-
type AppRouteSemanticIds = {
|
|
228
|
+
export type AppRouteSemanticIds = {
|
|
229
229
|
route: string;
|
|
230
230
|
page: string | null;
|
|
231
231
|
routeHandler: string | null;
|
|
@@ -241,7 +241,7 @@ type AppRouteSemanticIds = {
|
|
|
241
241
|
type AppRouteGraphParallelSlot = ParallelSlot & {
|
|
242
242
|
id: string;
|
|
243
243
|
};
|
|
244
|
-
type AppRouteGraphRoute = Omit<AppRoute, "ids" | "parallelSlots" | "rootParamNames"> & {
|
|
244
|
+
export type AppRouteGraphRoute = Omit<AppRoute, "ids" | "parallelSlots" | "rootParamNames"> & {
|
|
245
245
|
ids: AppRouteSemanticIds;
|
|
246
246
|
parallelSlots: AppRouteGraphParallelSlot[];
|
|
247
247
|
rootParamNames: string[];
|
|
@@ -249,9 +249,9 @@ type AppRouteGraphRoute = Omit<AppRoute, "ids" | "parallelSlots" | "rootParamNam
|
|
|
249
249
|
type Flavor<T, Brand extends string> = T & {
|
|
250
250
|
readonly __flavor?: Brand;
|
|
251
251
|
};
|
|
252
|
-
type GraphVersion = Flavor<string, "GraphVersion">;
|
|
253
|
-
type RootBoundaryId = Flavor<string, "RootBoundaryId">;
|
|
254
|
-
type RouteManifestRoute = {
|
|
252
|
+
export type GraphVersion = Flavor<string, "GraphVersion">;
|
|
253
|
+
export type RootBoundaryId = Flavor<string, "RootBoundaryId">;
|
|
254
|
+
export type RouteManifestRoute = {
|
|
255
255
|
id: string;
|
|
256
256
|
pattern: string;
|
|
257
257
|
patternParts: readonly string[];
|
|
@@ -311,7 +311,7 @@ type RouteManifestDefault = {
|
|
|
311
311
|
rootBoundaryId: RootBoundaryId | null;
|
|
312
312
|
};
|
|
313
313
|
type RouteManifestSlotBindingState = "active" | "default" | "unmatched";
|
|
314
|
-
type RouteManifestSlotBinding = {
|
|
314
|
+
export type RouteManifestSlotBinding = {
|
|
315
315
|
id: string;
|
|
316
316
|
routeId: string;
|
|
317
317
|
slotId: string;
|
|
@@ -322,7 +322,7 @@ type RouteManifestSlotBinding = {
|
|
|
322
322
|
slotPatternParts?: readonly string[];
|
|
323
323
|
slotParamNames?: readonly string[];
|
|
324
324
|
};
|
|
325
|
-
type RouteManifestInterception = {
|
|
325
|
+
export type RouteManifestInterception = {
|
|
326
326
|
id: string;
|
|
327
327
|
sourcePattern: string;
|
|
328
328
|
sourcePatternParts: readonly string[];
|
|
@@ -341,12 +341,12 @@ type RouteManifestBoundary = {
|
|
|
341
341
|
ownerLayoutId: string | null;
|
|
342
342
|
rootBoundaryId: RootBoundaryId | null;
|
|
343
343
|
};
|
|
344
|
-
type RouteManifestRootBoundary = {
|
|
344
|
+
export type RouteManifestRootBoundary = {
|
|
345
345
|
id: RootBoundaryId;
|
|
346
346
|
layoutId: string;
|
|
347
347
|
treePath: string;
|
|
348
348
|
};
|
|
349
|
-
type StaticSegmentGraph = {
|
|
349
|
+
export type StaticSegmentGraph = {
|
|
350
350
|
routes: ReadonlyMap<string, RouteManifestRoute>;
|
|
351
351
|
pages: ReadonlyMap<string, RouteManifestPage>;
|
|
352
352
|
routeHandlers: ReadonlyMap<string, RouteManifestRouteHandler>;
|
|
@@ -360,20 +360,19 @@ type StaticSegmentGraph = {
|
|
|
360
360
|
boundaries: ReadonlyMap<string, RouteManifestBoundary>;
|
|
361
361
|
rootBoundaries: ReadonlyMap<RootBoundaryId, RouteManifestRootBoundary>;
|
|
362
362
|
};
|
|
363
|
-
type RouteManifest = {
|
|
363
|
+
export type RouteManifest = {
|
|
364
364
|
graphVersion: GraphVersion;
|
|
365
365
|
segmentGraph: StaticSegmentGraph;
|
|
366
366
|
};
|
|
367
|
-
declare function createAppRouteGraphInterceptionId(slotId: string, sourcePattern: string, targetPattern: string): string;
|
|
368
367
|
/**
|
|
369
368
|
* Build the App Router route graph by scanning `appDir`.
|
|
370
369
|
*/
|
|
371
|
-
declare function buildAppRouteGraph(appDir: string, matcher: ValidFileMatcher): Promise<{
|
|
370
|
+
export declare function buildAppRouteGraph(appDir: string, matcher: ValidFileMatcher): Promise<{
|
|
372
371
|
routes: AppRouteGraphRoute[];
|
|
373
372
|
routeManifest: RouteManifest;
|
|
374
373
|
}>;
|
|
375
|
-
declare function computeRootParamNames(routeSegments: readonly string[], layoutTreePositions: readonly number[]): string[];
|
|
376
|
-
declare function patternsStructurallyEquivalent(a: readonly string[], b: readonly string[]): boolean;
|
|
374
|
+
export declare function computeRootParamNames(routeSegments: readonly string[], layoutTreePositions: readonly number[]): string[];
|
|
375
|
+
export declare function patternsStructurallyEquivalent(a: readonly string[], b: readonly string[]): boolean;
|
|
377
376
|
/**
|
|
378
377
|
* Find the best route to attach a sibling intercept to, given the directory
|
|
379
378
|
* that contains the interception marker.
|
|
@@ -392,13 +391,13 @@ declare function patternsStructurallyEquivalent(a: readonly string[], b: readonl
|
|
|
392
391
|
*
|
|
393
392
|
* Exported for tests.
|
|
394
393
|
*/
|
|
395
|
-
declare function findOwnerRouteForDir(dir: string, appDir: string, routes: readonly AppRouteGraphRoute[], routesByDir: Map<string, AppRouteGraphRoute>): AppRouteGraphRoute | null;
|
|
394
|
+
export declare function findOwnerRouteForDir(dir: string, appDir: string, routes: readonly AppRouteGraphRoute[], routesByDir: Map<string, AppRouteGraphRoute>): AppRouteGraphRoute | null;
|
|
396
395
|
/**
|
|
397
396
|
* Convert filesystem path segments to URL route parts, skipping invisible segments
|
|
398
397
|
* (route groups, @slots, ".") and converting dynamic segment syntax to Express-style
|
|
399
398
|
* patterns (e.g. "[id]" → ":id", "[...slug]" → ":slug+").
|
|
400
399
|
*/
|
|
401
|
-
declare function convertSegmentsToRouteParts(segments: readonly string[]): {
|
|
400
|
+
export declare function convertSegmentsToRouteParts(segments: readonly string[]): {
|
|
402
401
|
urlSegments: string[];
|
|
403
402
|
params: string[];
|
|
404
403
|
isDynamic: boolean;
|
|
@@ -421,10 +420,10 @@ declare function convertSegmentsToRouteParts(segments: readonly string[]): {
|
|
|
421
420
|
* filesystem tree but not the URL namespace — sibling computation is done on
|
|
422
421
|
* the URL-level `patternParts`, so they are correctly transparent here.
|
|
423
422
|
*/
|
|
424
|
-
declare function computeAppRouteStaticSiblings(allRoutes: readonly {
|
|
423
|
+
export declare function computeAppRouteStaticSiblings(allRoutes: readonly {
|
|
425
424
|
patternParts?: readonly string[] | null;
|
|
426
425
|
}[], matchedRoute: {
|
|
427
426
|
patternParts?: readonly string[] | null;
|
|
428
427
|
}): string[];
|
|
429
428
|
//#endregion
|
|
430
|
-
export {
|
|
429
|
+
export { isInvisibleSegment };
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import path, { toSlash } from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
|
-
import { decodeRouteSegment, isInvisibleSegment, sortRoutes } from "./utils.js";
|
|
3
2
|
import { findFileWithExts, scanWithExtensions } from "./file-matcher.js";
|
|
3
|
+
import { decodeRouteSegment, isInvisibleSegment, sortRoutes } from "./utils.js";
|
|
4
4
|
import { validateRoutePatterns } from "./route-validation.js";
|
|
5
5
|
import { compareStrings } from "../utils/compare.js";
|
|
6
|
+
import { createAppRouteGraphInterceptionId } from "./app-route-ids.js";
|
|
6
7
|
import fs from "node:fs";
|
|
7
8
|
import { createHash } from "node:crypto";
|
|
8
9
|
//#region src/routing/app-route-graph.ts
|
|
@@ -37,9 +38,6 @@ const SIBLING_INTERCEPT_SLOT_NAME = "__vinext_sibling_intercept";
|
|
|
37
38
|
function createAppRouteGraphSiblingInterceptSlotId(sourcePattern) {
|
|
38
39
|
return createAppRouteGraphSlotId(SIBLING_INTERCEPT_SLOT_NAME, sourcePattern);
|
|
39
40
|
}
|
|
40
|
-
function createAppRouteGraphInterceptionId(slotId, sourcePattern, targetPattern) {
|
|
41
|
-
return `interception:${slotId}:${sourcePattern}->${targetPattern}`;
|
|
42
|
-
}
|
|
43
41
|
function createAppRouteGraphRootBoundaryId(treePath) {
|
|
44
42
|
return `root-boundary:${treePath}`;
|
|
45
43
|
}
|
|
@@ -401,7 +399,8 @@ async function buildAppRouteGraph(appDir, matcher) {
|
|
|
401
399
|
discoverSiblingInterceptingRoutes(routes, appDir, scanMatcher);
|
|
402
400
|
validatePageRouteConflicts(routes, appDir);
|
|
403
401
|
validateRoutePatterns(routes.map((route) => route.pattern));
|
|
404
|
-
|
|
402
|
+
const interceptTargetPatterns = [...new Set(routes.flatMap((route) => [...route.parallelSlots.flatMap((slot) => slot.interceptingRoutes.map((intercept) => intercept.targetPattern)), ...route.siblingIntercepts.map((intercept) => intercept.targetPattern)]))];
|
|
403
|
+
validateRoutePatterns(interceptTargetPatterns);
|
|
405
404
|
sortRoutes(routes);
|
|
406
405
|
return {
|
|
407
406
|
routes,
|
|
@@ -1752,4 +1751,4 @@ function computeAppRouteStaticSiblings(allRoutes, matchedRoute) {
|
|
|
1752
1751
|
return Array.from(siblings);
|
|
1753
1752
|
}
|
|
1754
1753
|
//#endregion
|
|
1755
|
-
export { buildAppRouteGraph, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts,
|
|
1754
|
+
export { buildAppRouteGraph, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, findOwnerRouteForDir, isInvisibleSegment, patternsStructurallyEquivalent };
|
|
@@ -5,7 +5,7 @@ type AppRouteGraph = {
|
|
|
5
5
|
routes: AppRouteGraphRoute[];
|
|
6
6
|
routeManifest: RouteManifest;
|
|
7
7
|
};
|
|
8
|
-
declare function invalidateAppRouteCache(): void;
|
|
8
|
+
export declare function invalidateAppRouteCache(): void;
|
|
9
9
|
/**
|
|
10
10
|
* Scan the app/ directory and return the route graph.
|
|
11
11
|
* TODO(#726): Layer 4 should consume this read model directly once the
|
|
@@ -13,19 +13,32 @@ declare function invalidateAppRouteCache(): void;
|
|
|
13
13
|
*
|
|
14
14
|
* @internal
|
|
15
15
|
*/
|
|
16
|
-
declare function appRouteGraph(appDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<AppRouteGraph>;
|
|
16
|
+
export declare function appRouteGraph(appDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<AppRouteGraph>;
|
|
17
17
|
/**
|
|
18
18
|
* Scan the app/ directory and return a list of routes.
|
|
19
19
|
*/
|
|
20
|
-
declare function appRouter(appDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<AppRouteGraphRoute[]>;
|
|
20
|
+
export declare function appRouter(appDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<AppRouteGraphRoute[]>;
|
|
21
21
|
/** Whether the route's ordinary main tree has a loading boundary unique to it. */
|
|
22
|
-
declare function appRouteHasMainTreeLoadingBoundary(route: AppRoute): boolean;
|
|
22
|
+
export declare function appRouteHasMainTreeLoadingBoundary(route: AppRoute): boolean;
|
|
23
|
+
/**
|
|
24
|
+
* A route's layouts below a dynamic URL segment, one generateStaticParams
|
|
25
|
+
* provider each, keyed by the layout's directory. Next.js composes only the
|
|
26
|
+
* segments of a route's own loader tree, each segment as its own step
|
|
27
|
+
* (build/static-paths/app.ts generateRouteStaticParams), and route groups put
|
|
28
|
+
* different layouts at the same URL pattern prefix, so neither the pattern nor
|
|
29
|
+
* a shared provider identifies a layout.
|
|
30
|
+
*/
|
|
31
|
+
export declare function appRouteLayoutStaticParamsGroups(route: Pick<AppRoute, "layouts" | "layoutTreePositions" | "routeSegments">): {
|
|
32
|
+
key: string;
|
|
33
|
+
layoutPath: string;
|
|
34
|
+
pattern: string;
|
|
35
|
+
}[];
|
|
23
36
|
/**
|
|
24
37
|
* Match a URL against App Router routes.
|
|
25
38
|
*/
|
|
26
|
-
declare function matchAppRoute(url: string, routes: AppRoute[]): {
|
|
39
|
+
export declare function matchAppRoute(url: string, routes: AppRoute[]): {
|
|
27
40
|
route: AppRoute;
|
|
28
41
|
params: Record<string, string | string[]>;
|
|
29
42
|
} | null;
|
|
30
43
|
//#endregion
|
|
31
|
-
export { type AppRoute,
|
|
44
|
+
export { type AppRoute, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createValidFileMatcher } from "./file-matcher.js";
|
|
2
|
-
import { createRouteTrieCache, matchRouteWithTrie } from "./route-matching.js";
|
|
3
2
|
import { buildAppRouteGraph, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts } from "./app-route-graph.js";
|
|
3
|
+
import { createRouteTrieCache, matchRouteWithTrie } from "./route-matching.js";
|
|
4
4
|
//#region src/routing/app-router.ts
|
|
5
5
|
/**
|
|
6
6
|
* App Router file-system routing.
|
|
@@ -58,6 +58,28 @@ async function appRouter(appDir, pageExtensions, matcher) {
|
|
|
58
58
|
function appRouteHasMainTreeLoadingBoundary(route) {
|
|
59
59
|
return route.loadingPath != null || (route.loadingPaths?.some((_loadingPath, index) => (route.loadingTreePositions?.[index] ?? 0) > 0) ?? false);
|
|
60
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* A route's layouts below a dynamic URL segment, one generateStaticParams
|
|
63
|
+
* provider each, keyed by the layout's directory. Next.js composes only the
|
|
64
|
+
* segments of a route's own loader tree, each segment as its own step
|
|
65
|
+
* (build/static-paths/app.ts generateRouteStaticParams), and route groups put
|
|
66
|
+
* different layouts at the same URL pattern prefix, so neither the pattern nor
|
|
67
|
+
* a shared provider identifies a layout.
|
|
68
|
+
*/
|
|
69
|
+
function appRouteLayoutStaticParamsGroups(route) {
|
|
70
|
+
const groups = [];
|
|
71
|
+
for (const [index, layoutPath] of route.layouts.entries()) {
|
|
72
|
+
const segments = route.routeSegments.slice(0, route.layoutTreePositions[index] ?? 0);
|
|
73
|
+
const pattern = `/${(convertSegmentsToRouteParts(segments)?.urlSegments ?? []).join("/")}`;
|
|
74
|
+
if (!pattern.includes(":")) continue;
|
|
75
|
+
groups.push({
|
|
76
|
+
key: `layouts:${segments.join("/")}`,
|
|
77
|
+
layoutPath,
|
|
78
|
+
pattern
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
return groups;
|
|
82
|
+
}
|
|
61
83
|
const appTrieCache = createRouteTrieCache();
|
|
62
84
|
/**
|
|
63
85
|
* Match a URL against App Router routes.
|
|
@@ -66,4 +88,4 @@ function matchAppRoute(url, routes) {
|
|
|
66
88
|
return matchRouteWithTrie(url, routes, appTrieCache);
|
|
67
89
|
}
|
|
68
90
|
//#endregion
|
|
69
|
-
export { appRouteGraph, appRouteHasMainTreeLoadingBoundary, appRouter, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, invalidateAppRouteCache, matchAppRoute };
|
|
91
|
+
export { appRouteGraph, appRouteHasMainTreeLoadingBoundary, appRouteLayoutStaticParamsGroups, appRouter, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts, invalidateAppRouteCache, matchAppRoute };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
//#region src/routing/file-matcher.d.ts
|
|
2
|
-
declare function normalizePageExtensions(pageExtensions?: readonly string[] | null): string[];
|
|
3
|
-
type ValidFileMatcher = {
|
|
2
|
+
export declare function normalizePageExtensions(pageExtensions?: readonly string[] | null): string[];
|
|
3
|
+
export type ValidFileMatcher = {
|
|
4
4
|
extensions: string[];
|
|
5
5
|
dottedExtensions: string[];
|
|
6
6
|
extensionRegex: RegExp;
|
|
@@ -15,14 +15,14 @@ type ValidFileMatcher = {
|
|
|
15
15
|
* Ported in spirit from Next.js createValidFileMatcher:
|
|
16
16
|
* packages/next/src/server/lib/find-page-file.ts
|
|
17
17
|
*/
|
|
18
|
-
declare function createValidFileMatcher(pageExtensions?: readonly string[] | null): ValidFileMatcher;
|
|
18
|
+
export declare function createValidFileMatcher(pageExtensions?: readonly string[] | null): ValidFileMatcher;
|
|
19
19
|
/** Check if a file exists with any configured page extension. */
|
|
20
|
-
declare function findFileWithExtensions(basePath: string, matcher: ValidFileMatcher): boolean;
|
|
20
|
+
export declare function findFileWithExtensions(basePath: string, matcher: ValidFileMatcher): boolean;
|
|
21
21
|
/**
|
|
22
22
|
* Find a file by basename and configured page extension in a directory.
|
|
23
23
|
* Returns the first matching absolute path, or null if not found.
|
|
24
24
|
*/
|
|
25
|
-
declare function findFileWithExts(dir: string, name: string, matcher: ValidFileMatcher): string | null;
|
|
25
|
+
export declare function findFileWithExts(dir: string, name: string, matcher: ValidFileMatcher): string | null;
|
|
26
26
|
/**
|
|
27
27
|
* Add the config extensions produced by `vinext init` to vinext's resolver.
|
|
28
28
|
*
|
|
@@ -38,7 +38,7 @@ declare function findFileWithExts(dir: string, name: string, matcher: ValidFileM
|
|
|
38
38
|
* `.cjs`/`.cts` go last because `vinext init` renames CJS config files when it
|
|
39
39
|
* adds `"type": "module"`, and app code may import those files extensionlessly.
|
|
40
40
|
*/
|
|
41
|
-
declare function buildViteResolveExtensions(viteExtensions?: readonly string[]): string[];
|
|
41
|
+
export declare function buildViteResolveExtensions(viteExtensions?: readonly string[]): string[];
|
|
42
42
|
/**
|
|
43
43
|
* Normalize an explicit Next.js resolver extension list for Vite.
|
|
44
44
|
*
|
|
@@ -47,7 +47,7 @@ declare function buildViteResolveExtensions(viteExtensions?: readonly string[]):
|
|
|
47
47
|
* webpack/Turbopack convention for trying the import exactly as written; Vite
|
|
48
48
|
* already does that before appending extensions, so it must be omitted here.
|
|
49
49
|
*/
|
|
50
|
-
declare function normalizeViteResolveExtensions(extensions: readonly string[]): string[];
|
|
50
|
+
export declare function normalizeViteResolveExtensions(extensions: readonly string[]): string[];
|
|
51
51
|
/**
|
|
52
52
|
* Use function-form exclude for Node < 22.14 compatibility.
|
|
53
53
|
*
|
|
@@ -55,6 +55,5 @@ declare function normalizeViteResolveExtensions(extensions: readonly string[]):
|
|
|
55
55
|
* separators on Windows, so each match goes through `toSlash` — this is the
|
|
56
56
|
* boundary where external fs output enters the canonical forward-slash space.
|
|
57
57
|
*/
|
|
58
|
-
declare function scanWithExtensions(stem: string, cwd: string, extensions: readonly string[], exclude?: (name: string) => boolean): AsyncGenerator<string>;
|
|
59
|
-
//#endregion
|
|
60
|
-
export { ValidFileMatcher, buildViteResolveExtensions, createValidFileMatcher, findFileWithExtensions, findFileWithExts, normalizePageExtensions, normalizeViteResolveExtensions, scanWithExtensions };
|
|
58
|
+
export declare function scanWithExtensions(stem: string, cwd: string, extensions: readonly string[], exclude?: (name: string) => boolean): AsyncGenerator<string>;
|
|
59
|
+
//#endregion
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ValidFileMatcher } from "./file-matcher.js";
|
|
2
2
|
import { patternToNextFormat } from "./route-validation.js";
|
|
3
3
|
//#region src/routing/pages-router.d.ts
|
|
4
|
-
type Route = {
|
|
4
|
+
export type Route = {
|
|
5
5
|
/** URL pattern, e.g. "/" or "/about" or "/posts/:id" */
|
|
6
6
|
pattern: string;
|
|
7
7
|
/** Pre-split pattern segments (computed once at scan time, reused per request) */
|
|
@@ -17,7 +17,7 @@ type Route = {
|
|
|
17
17
|
* Invalidate cached routes for a given pages directory.
|
|
18
18
|
* Called by the file watcher when pages are added/removed.
|
|
19
19
|
*/
|
|
20
|
-
declare function invalidateRouteCache(pagesDir: string): void;
|
|
20
|
+
export declare function invalidateRouteCache(pagesDir: string): void;
|
|
21
21
|
/**
|
|
22
22
|
* Scan the pages/ directory and return a list of routes.
|
|
23
23
|
* Results are cached — call invalidateRouteCache() when files change.
|
|
@@ -30,12 +30,12 @@ declare function invalidateRouteCache(pagesDir: string): void;
|
|
|
30
30
|
* - Ignores _app.tsx, _document.tsx, _error.tsx (Next.js special files)
|
|
31
31
|
* - Ignores pages/api/ (handled separately later)
|
|
32
32
|
*/
|
|
33
|
-
declare function pagesRouter(pagesDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<Route[]>;
|
|
33
|
+
export declare function pagesRouter(pagesDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<Route[]>;
|
|
34
34
|
/**
|
|
35
35
|
* Match a URL path against a route pattern.
|
|
36
36
|
* Returns the matched params or null if no match.
|
|
37
37
|
*/
|
|
38
|
-
declare function matchRoute(url: string, routes: Route[]): {
|
|
38
|
+
export declare function matchRoute(url: string, routes: Route[]): {
|
|
39
39
|
route: Route;
|
|
40
40
|
params: Record<string, string | string[]>;
|
|
41
41
|
} | null;
|
|
@@ -47,6 +47,6 @@ declare function matchRoute(url: string, routes: Route[]): {
|
|
|
47
47
|
* - pages/api/hello.ts -> /api/hello
|
|
48
48
|
* - pages/api/users/[id].ts -> /api/users/:id
|
|
49
49
|
*/
|
|
50
|
-
declare function apiRouter(pagesDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<Route[]>;
|
|
50
|
+
export declare function apiRouter(pagesDir: string, pageExtensions?: readonly string[], matcher?: ValidFileMatcher): Promise<Route[]>;
|
|
51
51
|
//#endregion
|
|
52
|
-
export {
|
|
52
|
+
export { patternToNextFormat };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
|
-
import { decodeRouteSegment, sortRoutes } from "./utils.js";
|
|
3
2
|
import { createValidFileMatcher, scanWithExtensions } from "./file-matcher.js";
|
|
3
|
+
import { decodeRouteSegment, sortRoutes } from "./utils.js";
|
|
4
4
|
import { patternToNextFormat, validateRoutePatterns } from "./route-validation.js";
|
|
5
5
|
import { createRouteTrieCache, matchRouteWithTrieRawPathname } from "./route-matching.js";
|
|
6
6
|
//#region src/routing/pages-router.ts
|
|
@@ -3,7 +3,7 @@ import { TrieNode } from "./route-trie.js";
|
|
|
3
3
|
type RouteTrieCache<R extends {
|
|
4
4
|
patternParts: string[];
|
|
5
5
|
}> = WeakMap<R[], TrieNode<R>>;
|
|
6
|
-
declare function createRouteTrieCache<R extends {
|
|
6
|
+
export declare function createRouteTrieCache<R extends {
|
|
7
7
|
patternParts: string[];
|
|
8
8
|
}>(): RouteTrieCache<R>;
|
|
9
9
|
/**
|
|
@@ -16,7 +16,7 @@ declare function createRouteTrieCache<R extends {
|
|
|
16
16
|
* Generic over the route shape; both Pages `Route` and App `AppRoute`
|
|
17
17
|
* satisfy `{ patternParts: string[] }`.
|
|
18
18
|
*/
|
|
19
|
-
declare function matchRouteWithTrie<R extends {
|
|
19
|
+
export declare function matchRouteWithTrie<R extends {
|
|
20
20
|
patternParts: string[];
|
|
21
21
|
}>(url: string, routes: R[], cache: RouteTrieCache<R>): {
|
|
22
22
|
route: R;
|
|
@@ -29,11 +29,10 @@ declare function matchRouteWithTrie<R extends {
|
|
|
29
29
|
* not select the filesystem route `/about`. Dynamic captures are still decoded
|
|
30
30
|
* exactly once by `trieMatch`, matching `getRouteMatcher` upstream.
|
|
31
31
|
*/
|
|
32
|
-
declare function matchRouteWithTrieRawPathname<R extends {
|
|
32
|
+
export declare function matchRouteWithTrieRawPathname<R extends {
|
|
33
33
|
patternParts: string[];
|
|
34
34
|
}>(url: string, routes: R[], cache: RouteTrieCache<R>): {
|
|
35
35
|
route: R;
|
|
36
36
|
params: Record<string, string | string[]>;
|
|
37
37
|
} | null;
|
|
38
|
-
//#endregion
|
|
39
|
-
export { createRouteTrieCache, matchRouteWithTrie, matchRouteWithTrieRawPathname };
|
|
38
|
+
//#endregion
|
|
@@ -36,7 +36,8 @@ function matchRouteWithTrie(url, routes, cache) {
|
|
|
36
36
|
let normalizedUrl = pathname === "/" ? "/" : pathname.replace(/\/$/, "");
|
|
37
37
|
normalizedUrl = normalizePathnameForRouteMatch(normalizedUrl);
|
|
38
38
|
const urlParts = normalizedUrl.split("/").filter(Boolean);
|
|
39
|
-
|
|
39
|
+
const trie = getOrBuildTrie(cache, routes);
|
|
40
|
+
return trieMatch(trie, urlParts);
|
|
40
41
|
}
|
|
41
42
|
/**
|
|
42
43
|
* Match a filesystem route against the request's raw encoded pathname.
|
|
@@ -48,7 +49,8 @@ function matchRouteWithTrie(url, routes, cache) {
|
|
|
48
49
|
function matchRouteWithTrieRawPathname(url, routes, cache) {
|
|
49
50
|
const pathname = url.split("?")[0];
|
|
50
51
|
const urlParts = (pathname === "/" ? "/" : pathname.replace(/\/$/, "")).split("/").filter(Boolean);
|
|
51
|
-
|
|
52
|
+
const trie = getOrBuildTrie(cache, routes);
|
|
53
|
+
return trieMatch(trie, urlParts);
|
|
52
54
|
}
|
|
53
55
|
//#endregion
|
|
54
56
|
export { createRouteTrieCache, matchRouteWithTrie, matchRouteWithTrieRawPathname };
|