vinext 1.0.0-beta.8 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +158 -84
- package/THIRD_PARTY_LICENSES.md +25 -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 +1 -13
- package/dist/build/precompress.d.ts +2 -3
- 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 +82 -8
- package/dist/build/prerender-paths.js +814 -99
- 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 +67 -15
- package/dist/build/prerender.js +177 -64
- 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 +38 -19
- package/dist/build/report.js +73 -4
- 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 +25 -16
- package/dist/build/server-entry.d.ts +4 -0
- package/dist/build/server-entry.js +28 -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 +7 -8
- package/dist/cache/cache-adapters-virtual.d.ts +95 -9
- package/dist/cache/cache-adapters-virtual.js +58 -6
- 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 -435
- package/dist/client/app-nav-failure-handler.d.ts +6 -7
- 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 +21 -17
- package/dist/client/navigation-runtime.js +2 -1
- 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 -8
- package/dist/client/window-next.d.ts +4 -5
- package/dist/config/config-matchers.d.ts +16 -16
- package/dist/config/config-matchers.js +10 -7
- package/dist/config/dotenv.d.ts +3 -4
- package/dist/config/dotenv.js +2 -1
- 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 +5 -6
- package/dist/entries/app-browser-entry.js +3 -2
- package/dist/entries/app-rsc-entry.d.ts +12 -3
- package/dist/entries/app-rsc-entry.js +530 -55
- package/dist/entries/app-rsc-manifest.d.ts +4 -3
- package/dist/entries/app-rsc-manifest.js +27 -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 +237 -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 +832 -199
- package/dist/init-cloudflare.d.ts +27 -16
- package/dist/init-cloudflare.js +754 -113
- 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 +123 -41
- 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/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 +3 -4
- package/dist/plugins/ignore-dynamic-requests.js +60 -89
- package/dist/plugins/import-meta-url.d.ts +6 -7
- package/dist/plugins/import-meta-url.js +31 -43
- 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 +3 -4
- package/dist/plugins/og-assets.d.ts +4 -5
- package/dist/plugins/og-assets.js +32 -13
- package/dist/plugins/og-harfbuzz.d.ts +24 -0
- package/dist/plugins/og-harfbuzz.js +260 -0
- package/dist/plugins/optimize-imports.d.ts +7 -7
- package/dist/plugins/optimize-imports.js +32 -44
- 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 +2 -3
- package/dist/plugins/require-context.js +13 -21
- 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/server-externals-manifest.d.ts +2 -3
- package/dist/plugins/strip-server-exports.d.ts +5 -6
- package/dist/plugins/strip-server-exports.js +1 -1
- 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 +3 -4
- package/dist/plugins/transitive-externals.d.ts +2 -3
- package/dist/plugins/typeof-window.d.ts +6 -7
- package/dist/plugins/typeof-window.js +30 -31
- 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 +19 -19
- package/dist/routing/app-route-graph.js +3 -2
- package/dist/routing/app-router.d.ts +20 -5
- package/dist/routing/app-router.js +28 -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 +3 -4
- package/dist/server/app-bfcache-identity.d.ts +8 -9
- 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 +121 -40
- 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 +14 -1
- 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 +4 -5
- 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-browser-visible-commit.js +1 -1
- 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 +26 -27
- package/dist/server/app-history-state.js +19 -11
- 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 +15 -7
- package/dist/server/app-middleware.js +30 -5
- 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 +14 -10
- package/dist/server/app-optimistic-routing.js +16 -3
- 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 +2 -1
- package/dist/server/app-page-cache-finalizer.d.ts +32 -8
- package/dist/server/app-page-cache-finalizer.js +118 -14
- package/dist/server/app-page-cache-render.d.ts +8 -5
- package/dist/server/app-page-cache-render.js +22 -5
- package/dist/server/app-page-cache.d.ts +28 -9
- package/dist/server/app-page-cache.js +96 -25
- package/dist/server/app-page-dispatch.d.ts +36 -12
- package/dist/server/app-page-dispatch.js +188 -63
- 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 +12 -8
- 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 +42 -6
- package/dist/server/app-page-render.js +192 -28
- 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 +31 -13
- 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 +42 -6
- 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 +35 -6
- package/dist/server/app-page-tracing.d.ts +33 -0
- package/dist/server/app-page-tracing.js +49 -0
- package/dist/server/app-pages-bridge.d.ts +6 -6
- package/dist/server/app-pages-bridge.js +19 -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 +26 -12
- package/dist/server/app-prerender-static-params.d.ts +15 -7
- package/dist/server/app-prerender-static-params.js +33 -11
- 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 +115 -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 +2 -3
- package/dist/server/app-route-handler-cache.js +46 -34
- package/dist/server/app-route-handler-dispatch.d.ts +3 -3
- package/dist/server/app-route-handler-dispatch.js +75 -57
- package/dist/server/app-route-handler-execution.d.ts +18 -13
- package/dist/server/app-route-handler-execution.js +189 -25
- 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 +22 -10
- package/dist/server/app-route-handler-policy.js +19 -4
- package/dist/server/app-route-handler-response.d.ts +9 -10
- package/dist/server/app-route-handler-response.js +2 -0
- 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 +2 -0
- package/dist/server/app-router-entry.js +76 -12
- package/dist/server/app-rsc-cache-busting.d.ts +47 -22
- package/dist/server/app-rsc-cache-busting.js +80 -18
- 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 +12 -9
- package/dist/server/app-rsc-errors.js +15 -13
- package/dist/server/app-rsc-handler.d.ts +33 -6
- package/dist/server/app-rsc-handler.js +498 -83
- 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 +2 -1
- package/dist/server/app-rsc-response-finalizer.d.ts +8 -5
- package/dist/server/app-rsc-response-finalizer.js +24 -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 +4 -4
- package/dist/server/app-rsc-route-matching.js +4 -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 +120 -6
- package/dist/server/app-segment-config.js +264 -12
- package/dist/server/app-server-action-execution.d.ts +16 -12
- package/dist/server/app-server-action-execution.js +88 -35
- package/dist/server/app-ssr-entry.d.ts +14 -4
- package/dist/server/app-ssr-entry.js +64 -17
- 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 +33 -7
- 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 +39 -11
- package/dist/server/cache-control.js +104 -7
- 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 +8 -0
- package/dist/server/cacheability-limits.js +9 -0
- package/dist/server/cacheability-manifest.d.ts +68 -0
- package/dist/server/cacheability-manifest.js +241 -0
- package/dist/server/cacheability-request.d.ts +49 -0
- package/dist/server/cacheability-request.js +559 -0
- 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 +39 -5
- 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 +130 -61
- 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 +62 -56
- package/dist/server/headers.js +33 -20
- 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-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 +28 -27
- package/dist/server/isr-cache.js +18 -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-cache-policy.d.ts +2 -3
- package/dist/server/metadata-route-response.d.ts +7 -7
- package/dist/server/metadata-route-response.js +68 -2
- 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 +13 -6
- package/dist/server/middleware-matcher.js +22 -1
- 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 +13 -8
- package/dist/server/middleware-runtime.js +54 -10
- 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/normalize-path.js +1 -1
- 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 +21 -8
- package/dist/server/pages-asset-tags.d.ts +6 -6
- package/dist/server/pages-asset-tags.js +37 -2
- 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 +11 -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-i18n.js +3 -2
- 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 +18 -19
- package/dist/server/pages-page-data.js +11 -10
- package/dist/server/pages-page-handler.d.ts +7 -6
- package/dist/server/pages-page-handler.js +98 -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 +49 -31
- 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 +16 -12
- package/dist/server/pages-request-pipeline.js +69 -28
- package/dist/server/pages-request-stage-entry.d.ts +23 -0
- package/dist/server/pages-request-stage-entry.js +314 -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 +48 -114
- 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 +11 -11
- package/dist/server/prerender-manifest.js +6 -3
- package/dist/server/prerender-route-params.d.ts +16 -9
- package/dist/server/prerender-route-params.js +18 -2
- package/dist/server/prerender-work-unit-setup.d.ts +4 -4
- package/dist/server/prerender-work-unit-setup.js +37 -14
- package/dist/server/prod-server.d.ts +12 -9
- package/dist/server/prod-server.js +129 -36
- 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 +17 -21
- package/dist/server/request-pipeline.js +8 -10
- 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 +2 -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/server-globals.js +13 -0
- 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 +16 -0
- package/dist/server/static-file-signal.js +82 -0
- 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 +18 -0
- package/dist/server/worker-prerender-discovery.js +55 -0
- package/dist/server/worker-revalidation-context.d.ts +2 -3
- package/dist/server/worker-revalidation-context.js +5 -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 +4 -4
- package/dist/server/workers-tracing.d.ts +17 -0
- package/dist/server/workers-tracing.js +27 -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 +28 -29
- package/dist/shims/cache-runtime.d.ts +23 -21
- package/dist/shims/cache-runtime.js +239 -121
- package/dist/shims/cache.d.ts +15 -15
- package/dist/shims/cache.js +25 -13
- package/dist/shims/cacheability-classification.d.ts +106 -0
- package/dist/shims/cacheability-classification.js +161 -0
- 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 +76 -18
- package/dist/shims/cdn-cache.js +40 -39
- 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 +4 -4
- package/dist/shims/error.js +1 -1
- package/dist/shims/error.react-server.d.ts +3 -4
- package/dist/shims/fetch-cache.d.ts +22 -22
- package/dist/shims/fetch-cache.js +50 -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 +68 -32
- package/dist/shims/headers.js +101 -10
- 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 +13 -0
- package/dist/shims/internal/app-prefetch-rsc-request.js +12 -0
- package/dist/shims/internal/app-route-detection.d.ts +2 -2
- package/dist/shims/internal/app-route-prefetch-policy.d.ts +5 -6
- package/dist/shims/internal/app-route-prefetch-policy.js +1 -0
- package/dist/shims/internal/app-router-context.d.ts +9 -10
- 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/hybrid-client-route-owner-direct.d.ts +6 -7
- package/dist/shims/internal/hybrid-client-route-owner-direct.js +29 -11
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +3 -3
- package/dist/shims/internal/hybrid-client-route-owner.js +5 -4
- 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 +8 -3
- package/dist/shims/internal/make-hanging-promise.js +13 -2
- 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 +12 -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 +67 -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 +45 -17
- package/dist/shims/navigation.react-server.d.ts +9 -9
- package/dist/shims/navigation.react-server.js +1 -1
- 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 +7 -6
- package/dist/shims/root-params.d.ts +14 -15
- 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 +14 -28
- 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 +34 -31
- 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 +18 -12
- package/dist/shims/url-utils.js +10 -1
- 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 +3 -4
- 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 +9 -10
- package/dist/utils/prerender-output-paths.js +16 -9
- 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 +144 -0
- package/dist/utils/vite-version.d.ts +5 -6
- package/next-package.json +4 -0
- package/package.json +55 -6
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { booleanLiteralValue, collectBindingNames, forEachAstChild, isIdentifierNamed, stringLiteralValue } from "./ast-utils.js";
|
|
3
3
|
import { magicStringTransformResult } from "./transform-result.js";
|
|
4
|
-
import {
|
|
4
|
+
import { stripViteModuleQuery } from "../utils/path.js";
|
|
5
5
|
import { collectDirectScopeBindings, collectLoopScopeBindings, collectSwitchScopeBindings, collectVarScopeBindings, createAstScope, hasAstBinding, isFunctionNode } from "./ast-scope.js";
|
|
6
6
|
import { parseAst } from "vite";
|
|
7
7
|
import MagicString from "magic-string";
|
|
@@ -22,15 +22,14 @@ function getTypeofWindowReplacement(environment) {
|
|
|
22
22
|
return environment.config.consumer === "client" ? "object" : "undefined";
|
|
23
23
|
}
|
|
24
24
|
function evaluateTypeofWindowComparison(node, replacement, scope) {
|
|
25
|
-
if (
|
|
25
|
+
if (node.type !== "BinaryExpression") return null;
|
|
26
26
|
if (![
|
|
27
27
|
"==",
|
|
28
28
|
"===",
|
|
29
29
|
"!=",
|
|
30
30
|
"!=="
|
|
31
31
|
].includes(String(node.operator))) return null;
|
|
32
|
-
const left
|
|
33
|
-
const right = isAstRecord(node.right) ? node.right : null;
|
|
32
|
+
const { left, right } = node;
|
|
34
33
|
const leftIsTypeofWindow = left?.type === "UnaryExpression" && left.operator === "typeof" && isIdentifierNamed(left.argument, "window") && !hasAstBinding(scope, "window");
|
|
35
34
|
const rightIsTypeofWindow = right?.type === "UnaryExpression" && right.operator === "typeof" && isIdentifierNamed(right.argument, "window") && !hasAstBinding(scope, "window");
|
|
36
35
|
const comparedValue = leftIsTypeofWindow ? stringLiteralValue(right) : rightIsTypeofWindow ? stringLiteralValue(left) : null;
|
|
@@ -39,17 +38,17 @@ function evaluateTypeofWindowComparison(node, replacement, scope) {
|
|
|
39
38
|
return node.operator === "==" || node.operator === "===" ? equal : !equal;
|
|
40
39
|
}
|
|
41
40
|
function isProcessBrowserMember(node, scope) {
|
|
42
|
-
const candidate =
|
|
43
|
-
if (
|
|
41
|
+
const candidate = node.type === "ChainExpression" ? node.expression : node;
|
|
42
|
+
if (candidate.type !== "MemberExpression") return false;
|
|
44
43
|
return isIdentifierNamed(candidate.object, "process") && (candidate.computed ? stringLiteralValue(candidate.property) === "browser" : isIdentifierNamed(candidate.property, "browser")) && !hasAstBinding(scope, "process");
|
|
45
44
|
}
|
|
46
45
|
function evaluateProcessBrowserCondition(node, replacement, scope) {
|
|
47
46
|
if (isProcessBrowserMember(node, scope)) return replacement;
|
|
48
|
-
if (
|
|
47
|
+
if (node.type === "UnaryExpression" && node.operator === "!") {
|
|
49
48
|
const value = evaluateProcessBrowserCondition(node.argument, replacement, scope);
|
|
50
49
|
return value === null ? null : !value;
|
|
51
50
|
}
|
|
52
|
-
if (
|
|
51
|
+
if (node.type !== "BinaryExpression") return null;
|
|
53
52
|
if (![
|
|
54
53
|
"==",
|
|
55
54
|
"===",
|
|
@@ -64,7 +63,7 @@ function evaluateProcessBrowserCondition(node, replacement, scope) {
|
|
|
64
63
|
return node.operator === "==" || node.operator === "===" ? equal : !equal;
|
|
65
64
|
}
|
|
66
65
|
function evaluateConsumerCondition(node, replacements, scope) {
|
|
67
|
-
if (
|
|
66
|
+
if (node.type === "LogicalExpression") {
|
|
68
67
|
const left = evaluateConsumerCondition(node.left, replacements, scope);
|
|
69
68
|
if (node.operator === "&&") {
|
|
70
69
|
if (left?.value === false) return left;
|
|
@@ -76,7 +75,7 @@ function evaluateConsumerCondition(node, replacements, scope) {
|
|
|
76
75
|
} : null;
|
|
77
76
|
}
|
|
78
77
|
const right = evaluateConsumerCondition(node.right, replacements, scope);
|
|
79
|
-
if (replacements.pruneUnreachableImports && right?.value === false && right.effects.length === 0
|
|
78
|
+
if (replacements.pruneUnreachableImports && right?.value === false && right.effects.length === 0) return {
|
|
80
79
|
value: false,
|
|
81
80
|
effects: [node.left]
|
|
82
81
|
};
|
|
@@ -90,7 +89,7 @@ function evaluateConsumerCondition(node, replacements, scope) {
|
|
|
90
89
|
} : null;
|
|
91
90
|
}
|
|
92
91
|
const right = evaluateConsumerCondition(node.right, replacements, scope);
|
|
93
|
-
if (replacements.pruneUnreachableImports && right?.value === true && right.effects.length === 0
|
|
92
|
+
if (replacements.pruneUnreachableImports && right?.value === true && right.effects.length === 0) return {
|
|
94
93
|
value: true,
|
|
95
94
|
effects: [node.left]
|
|
96
95
|
};
|
|
@@ -128,7 +127,6 @@ function replaceConsumerEnvironmentConditions(code, replacements, id = "file.js"
|
|
|
128
127
|
}
|
|
129
128
|
const output = new MagicString(code);
|
|
130
129
|
let changed = false;
|
|
131
|
-
if (!isAstRecord(ast)) return null;
|
|
132
130
|
function overwriteGap(start, end, content) {
|
|
133
131
|
if (start === end) output.appendLeft(start, content);
|
|
134
132
|
else output.overwrite(start, end, content);
|
|
@@ -140,11 +138,12 @@ function replaceConsumerEnvironmentConditions(code, replacements, id = "file.js"
|
|
|
140
138
|
if (isFunctionNode(node)) {
|
|
141
139
|
const parameterScope = createAstScope(parentScope);
|
|
142
140
|
collectBindingNames(node.id, parameterScope.bindings);
|
|
143
|
-
for (const parameter of
|
|
141
|
+
for (const parameter of node.params) {
|
|
144
142
|
collectBindingNames(parameter, parameterScope.bindings);
|
|
145
|
-
|
|
143
|
+
visit(parameter, parameterScope);
|
|
146
144
|
}
|
|
147
|
-
if (
|
|
145
|
+
if (!node.body) return;
|
|
146
|
+
if (node.body.type === "BlockStatement") {
|
|
148
147
|
const bodyScope = createAstScope(parameterScope);
|
|
149
148
|
collectDirectScopeBindings(node.body, bodyScope);
|
|
150
149
|
collectVarScopeBindings(node.body, bodyScope);
|
|
@@ -153,29 +152,29 @@ function replaceConsumerEnvironmentConditions(code, replacements, id = "file.js"
|
|
|
153
152
|
return;
|
|
154
153
|
}
|
|
155
154
|
if (node.type === "SwitchStatement") {
|
|
156
|
-
|
|
155
|
+
visit(node.discriminant, parentScope);
|
|
157
156
|
const switchScope = createAstScope(parentScope);
|
|
158
157
|
collectSwitchScopeBindings(node, switchScope);
|
|
159
|
-
for (const switchCase of
|
|
158
|
+
for (const switchCase of node.cases) visit(switchCase, switchScope);
|
|
160
159
|
return;
|
|
161
160
|
}
|
|
162
161
|
const scope = createChildScope(node, parentScope) ?? parentScope;
|
|
163
|
-
if (node.type === "IfStatement"
|
|
162
|
+
if (node.type === "IfStatement") {
|
|
164
163
|
const result = evaluateConsumerCondition(node.test, replacements, scope);
|
|
165
164
|
if (result !== null) {
|
|
166
165
|
const selected = result.value ? node.consequent : node.alternate;
|
|
167
166
|
if (result.effects.length > 0) {
|
|
168
|
-
const effects = result.effects
|
|
167
|
+
const effects = result.effects;
|
|
169
168
|
for (const effect of effects) visit(effect, scope);
|
|
170
|
-
if (
|
|
169
|
+
if (selected) visit(selected, scope);
|
|
171
170
|
overwriteGap(node.start, effects[0].start, "{ (");
|
|
172
171
|
for (let index = 1; index < effects.length; index++) overwriteGap(effects[index - 1].end, effects[index].start, "); (");
|
|
173
172
|
const lastEffect = effects.at(-1);
|
|
174
|
-
if (
|
|
173
|
+
if (selected) {
|
|
175
174
|
overwriteGap(lastEffect.end, selected.start, "); ");
|
|
176
175
|
overwriteGap(selected.end, node.end, " }");
|
|
177
176
|
} else overwriteGap(lastEffect.end, node.end, "); }");
|
|
178
|
-
} else if (
|
|
177
|
+
} else if (selected) {
|
|
179
178
|
output.remove(node.start, selected.start);
|
|
180
179
|
output.remove(selected.end, node.end);
|
|
181
180
|
visit(selected, scope);
|
|
@@ -184,12 +183,12 @@ function replaceConsumerEnvironmentConditions(code, replacements, id = "file.js"
|
|
|
184
183
|
return;
|
|
185
184
|
}
|
|
186
185
|
}
|
|
187
|
-
if (node.type === "ConditionalExpression"
|
|
186
|
+
if (node.type === "ConditionalExpression") {
|
|
188
187
|
const result = evaluateConsumerCondition(node.test, replacements, scope);
|
|
189
188
|
const selected = result?.value ? node.consequent : node.alternate;
|
|
190
|
-
if (result !== null
|
|
189
|
+
if (result !== null) {
|
|
191
190
|
if (result.effects.length > 0) {
|
|
192
|
-
const effects = result.effects
|
|
191
|
+
const effects = result.effects;
|
|
193
192
|
for (const effect of effects) visit(effect, scope);
|
|
194
193
|
visit(selected, scope);
|
|
195
194
|
overwriteGap(node.start, effects[0].start, "((");
|
|
@@ -206,10 +205,10 @@ function replaceConsumerEnvironmentConditions(code, replacements, id = "file.js"
|
|
|
206
205
|
return;
|
|
207
206
|
}
|
|
208
207
|
}
|
|
209
|
-
if (node.type === "LogicalExpression"
|
|
208
|
+
if (node.type === "LogicalExpression") {
|
|
210
209
|
const result = evaluateConsumerCondition(node, replacements, scope);
|
|
211
210
|
if (result !== null) {
|
|
212
|
-
const effects = result.effects
|
|
211
|
+
const effects = result.effects;
|
|
213
212
|
if (effects.length > 0) {
|
|
214
213
|
for (const effect of effects) visit(effect, scope);
|
|
215
214
|
overwriteGap(node.start, effects[0].start, "((");
|
|
@@ -220,19 +219,19 @@ function replaceConsumerEnvironmentConditions(code, replacements, id = "file.js"
|
|
|
220
219
|
return;
|
|
221
220
|
}
|
|
222
221
|
}
|
|
223
|
-
if (node.type === "UnaryExpression" && node.operator === "typeof" && isIdentifierNamed(node.argument, "window") && replacements.typeofWindow !== void 0 && !hasAstBinding(scope, "window")
|
|
222
|
+
if (node.type === "UnaryExpression" && node.operator === "typeof" && isIdentifierNamed(node.argument, "window") && replacements.typeofWindow !== void 0 && !hasAstBinding(scope, "window")) {
|
|
224
223
|
output.overwrite(node.start, node.end, JSON.stringify(replacements.typeofWindow));
|
|
225
224
|
changed = true;
|
|
226
225
|
return;
|
|
227
226
|
}
|
|
228
|
-
if (replacements.processBrowser !== void 0 && isProcessBrowserMember(node, scope)
|
|
227
|
+
if (replacements.processBrowser !== void 0 && isProcessBrowserMember(node, scope)) {
|
|
229
228
|
output.overwrite(node.start, node.end, String(replacements.processBrowser));
|
|
230
229
|
changed = true;
|
|
231
230
|
return;
|
|
232
231
|
}
|
|
233
232
|
forEachAstChild(node, (child) => visit(child, scope));
|
|
234
233
|
}
|
|
235
|
-
for (const node of ast.body)
|
|
234
|
+
for (const node of ast.body) visit(node, rootScope);
|
|
236
235
|
if (!changed) return null;
|
|
237
236
|
return magicStringTransformResult(output);
|
|
238
237
|
}
|
|
@@ -3,10 +3,7 @@ import { Plugin } from "vite";
|
|
|
3
3
|
type Options = {
|
|
4
4
|
projectRoot: string;
|
|
5
5
|
cacheRuntime: string;
|
|
6
|
-
getAppDir: () => string | undefined;
|
|
7
|
-
matchesPageExtension: (fileName: string) => boolean;
|
|
8
6
|
allowMissingRsc?: boolean;
|
|
9
7
|
};
|
|
10
|
-
declare function createUseCacheCallablePlugin(options: Options): Promise<Plugin>;
|
|
11
|
-
//#endregion
|
|
12
|
-
export { createUseCacheCallablePlugin };
|
|
8
|
+
export declare function createUseCacheCallablePlugin(options: Options): Promise<Plugin>;
|
|
9
|
+
//#endregion
|
|
@@ -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,20 @@ 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;
|
|
367
|
+
export declare function createAppRouteGraphInterceptionId(slotId: string, sourcePattern: string, targetPattern: string): string;
|
|
368
368
|
/**
|
|
369
369
|
* Build the App Router route graph by scanning `appDir`.
|
|
370
370
|
*/
|
|
371
|
-
declare function buildAppRouteGraph(appDir: string, matcher: ValidFileMatcher): Promise<{
|
|
371
|
+
export declare function buildAppRouteGraph(appDir: string, matcher: ValidFileMatcher): Promise<{
|
|
372
372
|
routes: AppRouteGraphRoute[];
|
|
373
373
|
routeManifest: RouteManifest;
|
|
374
374
|
}>;
|
|
375
|
-
declare function computeRootParamNames(routeSegments: readonly string[], layoutTreePositions: readonly number[]): string[];
|
|
376
|
-
declare function patternsStructurallyEquivalent(a: readonly string[], b: readonly string[]): boolean;
|
|
375
|
+
export declare function computeRootParamNames(routeSegments: readonly string[], layoutTreePositions: readonly number[]): string[];
|
|
376
|
+
export declare function patternsStructurallyEquivalent(a: readonly string[], b: readonly string[]): boolean;
|
|
377
377
|
/**
|
|
378
378
|
* Find the best route to attach a sibling intercept to, given the directory
|
|
379
379
|
* that contains the interception marker.
|
|
@@ -392,13 +392,13 @@ declare function patternsStructurallyEquivalent(a: readonly string[], b: readonl
|
|
|
392
392
|
*
|
|
393
393
|
* Exported for tests.
|
|
394
394
|
*/
|
|
395
|
-
declare function findOwnerRouteForDir(dir: string, appDir: string, routes: readonly AppRouteGraphRoute[], routesByDir: Map<string, AppRouteGraphRoute>): AppRouteGraphRoute | null;
|
|
395
|
+
export declare function findOwnerRouteForDir(dir: string, appDir: string, routes: readonly AppRouteGraphRoute[], routesByDir: Map<string, AppRouteGraphRoute>): AppRouteGraphRoute | null;
|
|
396
396
|
/**
|
|
397
397
|
* Convert filesystem path segments to URL route parts, skipping invisible segments
|
|
398
398
|
* (route groups, @slots, ".") and converting dynamic segment syntax to Express-style
|
|
399
399
|
* patterns (e.g. "[id]" → ":id", "[...slug]" → ":slug+").
|
|
400
400
|
*/
|
|
401
|
-
declare function convertSegmentsToRouteParts(segments: readonly string[]): {
|
|
401
|
+
export declare function convertSegmentsToRouteParts(segments: readonly string[]): {
|
|
402
402
|
urlSegments: string[];
|
|
403
403
|
params: string[];
|
|
404
404
|
isDynamic: boolean;
|
|
@@ -421,10 +421,10 @@ declare function convertSegmentsToRouteParts(segments: readonly string[]): {
|
|
|
421
421
|
* filesystem tree but not the URL namespace — sibling computation is done on
|
|
422
422
|
* the URL-level `patternParts`, so they are correctly transparent here.
|
|
423
423
|
*/
|
|
424
|
-
declare function computeAppRouteStaticSiblings(allRoutes: readonly {
|
|
424
|
+
export declare function computeAppRouteStaticSiblings(allRoutes: readonly {
|
|
425
425
|
patternParts?: readonly string[] | null;
|
|
426
426
|
}[], matchedRoute: {
|
|
427
427
|
patternParts?: readonly string[] | null;
|
|
428
428
|
}): string[];
|
|
429
429
|
//#endregion
|
|
430
|
-
export {
|
|
430
|
+
export { isInvisibleSegment };
|
|
@@ -1,6 +1,6 @@
|
|
|
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
6
|
import fs from "node:fs";
|
|
@@ -401,7 +401,8 @@ async function buildAppRouteGraph(appDir, matcher) {
|
|
|
401
401
|
discoverSiblingInterceptingRoutes(routes, appDir, scanMatcher);
|
|
402
402
|
validatePageRouteConflicts(routes, appDir);
|
|
403
403
|
validateRoutePatterns(routes.map((route) => route.pattern));
|
|
404
|
-
|
|
404
|
+
const interceptTargetPatterns = [...new Set(routes.flatMap((route) => [...route.parallelSlots.flatMap((slot) => slot.interceptingRoutes.map((intercept) => intercept.targetPattern)), ...route.siblingIntercepts.map((intercept) => intercept.targetPattern)]))];
|
|
405
|
+
validateRoutePatterns(interceptTargetPatterns);
|
|
405
406
|
sortRoutes(routes);
|
|
406
407
|
return {
|
|
407
408
|
routes,
|
|
@@ -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,17 +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
|
+
/** Whether the route's ordinary main tree has a loading boundary unique to it. */
|
|
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
|
+
}[];
|
|
21
36
|
/**
|
|
22
37
|
* Match a URL against App Router routes.
|
|
23
38
|
*/
|
|
24
|
-
declare function matchAppRoute(url: string, routes: AppRoute[]): {
|
|
39
|
+
export declare function matchAppRoute(url: string, routes: AppRoute[]): {
|
|
25
40
|
route: AppRoute;
|
|
26
41
|
params: Record<string, string | string[]>;
|
|
27
42
|
} | null;
|
|
28
43
|
//#endregion
|
|
29
|
-
export { type AppRoute,
|
|
44
|
+
export { type AppRoute, computeAppRouteStaticSiblings, computeRootParamNames, convertSegmentsToRouteParts };
|