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,11 +1,11 @@
|
|
|
1
1
|
import path, { toSlash } from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
|
-
import {
|
|
2
|
+
import { SCRIPT_MODULE_ID_RE, collectBindingNames, forEachAstChild, isIdentifierNamed, scriptParserLanguage } from "./ast-utils.js";
|
|
3
3
|
import { magicStringTransformResult } from "./transform-result.js";
|
|
4
|
+
import { canonicalizeFilePath, isPathInsideOrEqual, stripViteModuleQuery } from "../utils/path.js";
|
|
4
5
|
import { VIRTUAL_MODULE_ID_RE } from "../utils/virtual-module.js";
|
|
5
|
-
import { SCRIPT_MODULE_ID_RE, collectBindingNames, forEachAstChild, hasRange, isAstRecord, isIdentifierNamed, nodeArray, scriptParserLanguage } from "./ast-utils.js";
|
|
6
6
|
import fs from "node:fs";
|
|
7
|
-
import { parseAst } from "vite";
|
|
8
7
|
import { fileURLToPath, pathToFileURL } from "node:url";
|
|
8
|
+
import { parseAst } from "vite";
|
|
9
9
|
import { randomUUID } from "node:crypto";
|
|
10
10
|
import MagicString from "magic-string";
|
|
11
11
|
//#region src/plugins/import-meta-url.ts
|
|
@@ -372,7 +372,8 @@ function excludedRelativePrefixes(canonicalRoot, options) {
|
|
|
372
372
|
"out"
|
|
373
373
|
]);
|
|
374
374
|
for (const outputDir of options.outputDirs ?? []) {
|
|
375
|
-
const
|
|
375
|
+
const absoluteOutputDir = path.isAbsolute(outputDir) ? outputDir : path.resolve(canonicalRoot, outputDir);
|
|
376
|
+
const canonicalOutputDir = canonicalizeFilePath(absoluteOutputDir);
|
|
376
377
|
if (!isPathInsideOrEqual(canonicalRoot, canonicalOutputDir)) continue;
|
|
377
378
|
const relativePath = path.relative(canonicalRoot, canonicalOutputDir);
|
|
378
379
|
if (relativePath && relativePath !== ".") prefixes.add(relativePath);
|
|
@@ -389,7 +390,6 @@ function importMetaUrlValue(canonicalId, rootPaths, environment) {
|
|
|
389
390
|
function collectImportMetaUrlRanges(ast) {
|
|
390
391
|
const ranges = [];
|
|
391
392
|
function visit(value) {
|
|
392
|
-
if (!isAstRecord(value)) return;
|
|
393
393
|
if (isImportMetaUrlNode(value)) {
|
|
394
394
|
ranges.push({
|
|
395
395
|
start: value.start,
|
|
@@ -405,7 +405,7 @@ function collectImportMetaUrlRanges(ast) {
|
|
|
405
405
|
return;
|
|
406
406
|
}
|
|
407
407
|
if (isNewUrlExpression(value)) {
|
|
408
|
-
const args =
|
|
408
|
+
const args = value.arguments;
|
|
409
409
|
for (let index = 0; index < args.length; index += 1) {
|
|
410
410
|
if (index === 1 && isImportMetaUrlBaseNode(args[index])) continue;
|
|
411
411
|
visit(args[index]);
|
|
@@ -441,47 +441,41 @@ function analyzeServerCjsGlobals(ast) {
|
|
|
441
441
|
for (const name of names) if (isCjsGlobalName(name)) moduleBindings.add(name);
|
|
442
442
|
}
|
|
443
443
|
function recordDirectTopLevelBindings(statement) {
|
|
444
|
-
if (statement.declare === true) return;
|
|
445
444
|
switch (statement.type) {
|
|
446
445
|
case "ImportDeclaration":
|
|
447
|
-
|
|
448
|
-
|
|
446
|
+
if (statement.importKind === "type") return;
|
|
447
|
+
for (const specifier of statement.specifiers) {
|
|
448
|
+
if (specifier.type === "ImportSpecifier" && specifier.importKind === "type") continue;
|
|
449
449
|
recordBinding(specifier.local);
|
|
450
450
|
}
|
|
451
451
|
return;
|
|
452
452
|
case "VariableDeclaration":
|
|
453
|
-
if (statement.kind === "var") return;
|
|
454
|
-
for (const declarator of
|
|
455
|
-
if (!isAstRecord(declarator) || declarator.type !== "VariableDeclarator") continue;
|
|
456
|
-
recordBinding(declarator.id);
|
|
457
|
-
}
|
|
453
|
+
if (statement.kind === "var" || statement.declare === true) return;
|
|
454
|
+
for (const declarator of statement.declarations) recordBinding(declarator.id);
|
|
458
455
|
return;
|
|
459
456
|
case "FunctionDeclaration":
|
|
460
457
|
case "ClassDeclaration":
|
|
458
|
+
if (statement.declare === true) return;
|
|
461
459
|
recordBinding(statement.id);
|
|
462
460
|
return;
|
|
463
461
|
case "ExportNamedDeclaration":
|
|
464
462
|
case "ExportDefaultDeclaration":
|
|
465
|
-
if (
|
|
463
|
+
if (statement.declaration) recordDirectTopLevelBindings(statement.declaration);
|
|
466
464
|
return;
|
|
467
465
|
}
|
|
468
466
|
}
|
|
469
467
|
function recordModuleScopedVarBindings(node) {
|
|
470
|
-
if (!
|
|
468
|
+
if (!node) return;
|
|
471
469
|
switch (node.type) {
|
|
472
470
|
case "Program":
|
|
473
|
-
for (const statement of
|
|
474
|
-
if (!isAstRecord(statement)) continue;
|
|
471
|
+
for (const statement of node.body) {
|
|
475
472
|
recordDirectTopLevelBindings(statement);
|
|
476
473
|
recordModuleScopedVarBindings(statement);
|
|
477
474
|
}
|
|
478
475
|
return;
|
|
479
476
|
case "VariableDeclaration":
|
|
480
477
|
if (node.kind !== "var" || node.declare === true) return;
|
|
481
|
-
for (const declarator of
|
|
482
|
-
if (!isAstRecord(declarator) || declarator.type !== "VariableDeclarator") continue;
|
|
483
|
-
recordBinding(declarator.id);
|
|
484
|
-
}
|
|
478
|
+
for (const declarator of node.declarations) recordBinding(declarator.id);
|
|
485
479
|
return;
|
|
486
480
|
case "FunctionDeclaration":
|
|
487
481
|
case "FunctionExpression":
|
|
@@ -493,10 +487,10 @@ function analyzeServerCjsGlobals(ast) {
|
|
|
493
487
|
}
|
|
494
488
|
function moduleScopeChildren(node) {
|
|
495
489
|
switch (node.type) {
|
|
496
|
-
case "BlockStatement": return
|
|
490
|
+
case "BlockStatement": return node.body;
|
|
497
491
|
case "IfStatement": return [node.consequent, node.alternate];
|
|
498
|
-
case "SwitchStatement": return
|
|
499
|
-
case "SwitchCase": return
|
|
492
|
+
case "SwitchStatement": return node.cases;
|
|
493
|
+
case "SwitchCase": return node.consequent;
|
|
500
494
|
case "TryStatement": return [
|
|
501
495
|
node.block,
|
|
502
496
|
node.handler,
|
|
@@ -516,7 +510,7 @@ function analyzeServerCjsGlobals(ast) {
|
|
|
516
510
|
}
|
|
517
511
|
}
|
|
518
512
|
function recordReads(value) {
|
|
519
|
-
if (!
|
|
513
|
+
if (!value) return;
|
|
520
514
|
switch (value.type) {
|
|
521
515
|
case "Identifier":
|
|
522
516
|
if (isCjsGlobalName(value.name)) reads.add(value.name);
|
|
@@ -537,15 +531,13 @@ function analyzeServerCjsGlobals(ast) {
|
|
|
537
531
|
case "ImportDeclaration": return;
|
|
538
532
|
case "ExportAllDeclaration": return;
|
|
539
533
|
case "ExportNamedDeclaration":
|
|
540
|
-
if (
|
|
541
|
-
else if (!value.source)
|
|
542
|
-
for (const specifier of nodeArray(value.specifiers)) if (isAstRecord(specifier)) recordReads(specifier.local);
|
|
543
|
-
}
|
|
534
|
+
if (value.declaration) recordReads(value.declaration);
|
|
535
|
+
else if (!value.source) for (const specifier of value.specifiers) recordReads(specifier.local);
|
|
544
536
|
return;
|
|
545
537
|
default: forEachAstChild(value, recordReads);
|
|
546
538
|
}
|
|
547
539
|
}
|
|
548
|
-
|
|
540
|
+
recordModuleScopedVarBindings(ast);
|
|
549
541
|
recordReads(ast);
|
|
550
542
|
return {
|
|
551
543
|
reads,
|
|
@@ -553,33 +545,29 @@ function analyzeServerCjsGlobals(ast) {
|
|
|
553
545
|
};
|
|
554
546
|
}
|
|
555
547
|
function isImportMetaNode(value) {
|
|
556
|
-
return
|
|
548
|
+
return value.type === "MetaProperty" && isIdentifierNamed(value.meta, "import") && isIdentifierNamed(value.property, "meta");
|
|
557
549
|
}
|
|
558
550
|
function isImportMetaUrlNode(value) {
|
|
559
|
-
return
|
|
551
|
+
return value.type === "MemberExpression" && isImportMetaNode(value.object) && isIdentifierNamed(value.property, "url");
|
|
560
552
|
}
|
|
561
553
|
function isImportMetaUrlOrChainedNode(value) {
|
|
562
554
|
if (isImportMetaUrlNode(value)) return true;
|
|
563
|
-
return
|
|
555
|
+
return value.type === "ChainExpression" && isImportMetaUrlNode(value.expression);
|
|
564
556
|
}
|
|
565
557
|
function isImportMetaUrlBaseNode(value) {
|
|
566
558
|
if (isImportMetaUrlOrChainedNode(value)) return true;
|
|
567
|
-
return
|
|
559
|
+
return value.type === "BinaryExpression" && value.operator === "+" && value.left.type === "Literal" && value.left.value === "" && isImportMetaUrlOrChainedNode(value.right);
|
|
568
560
|
}
|
|
569
561
|
function isChainExpressionWrappingImportMetaUrl(value) {
|
|
570
|
-
return
|
|
562
|
+
return value.type === "ChainExpression" && isImportMetaUrlNode(value.expression);
|
|
571
563
|
}
|
|
572
564
|
function isNewUrlExpression(value) {
|
|
573
565
|
return value.type === "NewExpression" && isIdentifierNamed(value.callee, "URL");
|
|
574
566
|
}
|
|
575
567
|
function findDirectivePrologueEnd(ast) {
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
const hashbangEnd = typeof hashbang === "object" && hashbang !== null ? Reflect.get(hashbang, "end") : null;
|
|
580
|
-
if (typeof hashbangEnd === "number") end = hashbangEnd;
|
|
581
|
-
for (const statement of nodeArray(ast.body)) {
|
|
582
|
-
if (!isAstRecord(statement) || statement.type !== "ExpressionStatement" || !isAstRecord(statement.expression) || statement.expression.type !== "Literal" || typeof statement.expression.value !== "string" || typeof statement.end !== "number") break;
|
|
568
|
+
let end = ast.hashbang?.end ?? 0;
|
|
569
|
+
for (const statement of ast.body) {
|
|
570
|
+
if (statement.type !== "ExpressionStatement" || statement.expression.type !== "Literal" || typeof statement.expression.value !== "string") break;
|
|
583
571
|
end = statement.end;
|
|
584
572
|
}
|
|
585
573
|
return end;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Plugin } from "vite";
|
|
2
2
|
//#region src/plugins/instrumentation-client.d.ts
|
|
3
|
-
declare function
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
export declare function createInstrumentationServerTransformPlugin(getInstrumentationPath: () => string | null, getValues: () => Record<string, unknown>): Plugin;
|
|
4
|
+
export declare function createInstrumentationClientTransformPlugin(getInstrumentationClientPath: () => string | null, getRouteManifest: () => string | undefined): Plugin;
|
|
5
|
+
//#endregion
|
|
@@ -1,26 +1,62 @@
|
|
|
1
|
-
import { stripViteModuleQuery } from "../utils/path.js";
|
|
2
1
|
import { magicStringTransformResult } from "./transform-result.js";
|
|
2
|
+
import { stripViteModuleQuery } from "../utils/path.js";
|
|
3
3
|
import { normalizePath, parseAst } from "vite";
|
|
4
4
|
import MagicString from "magic-string";
|
|
5
5
|
//#region src/plugins/instrumentation-client.ts
|
|
6
|
-
function
|
|
6
|
+
function insertionPositionAfterDirectives(code) {
|
|
7
|
+
const ast = parseAst(code);
|
|
8
|
+
let insertPos = 0;
|
|
9
|
+
for (const node of ast.body) {
|
|
10
|
+
if (node.type !== "ExpressionStatement" || node.directive === void 0) break;
|
|
11
|
+
insertPos = node.end;
|
|
12
|
+
}
|
|
13
|
+
return insertPos;
|
|
14
|
+
}
|
|
15
|
+
function createInstrumentationServerTransformPlugin(getInstrumentationPath, getValues) {
|
|
16
|
+
return {
|
|
17
|
+
name: "vinext:instrumentation-server-values",
|
|
18
|
+
applyToEnvironment(environment) {
|
|
19
|
+
return environment.name !== "client";
|
|
20
|
+
},
|
|
21
|
+
transform(code, id) {
|
|
22
|
+
const instrumentationPath = getInstrumentationPath();
|
|
23
|
+
if (!instrumentationPath) return null;
|
|
24
|
+
if (normalizePath(stripViteModuleQuery(id)) !== instrumentationPath) return null;
|
|
25
|
+
const entries = Object.entries(getValues());
|
|
26
|
+
if (entries.length === 0 || code.includes("__vinextInstrumentationServerValues")) return null;
|
|
27
|
+
const assignments = entries.map(([key, value]) => {
|
|
28
|
+
const serialized = JSON.stringify(value);
|
|
29
|
+
return `globalThis[${JSON.stringify(key)}] = ${serialized ?? "undefined"};`;
|
|
30
|
+
}).join("\n");
|
|
31
|
+
const s = new MagicString(code);
|
|
32
|
+
s.appendLeft(insertionPositionAfterDirectives(code), `\n/* __vinextInstrumentationServerValues */\n${assignments}\n`);
|
|
33
|
+
return magicStringTransformResult(s, { hires: true });
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function createInstrumentationClientTransformPlugin(getInstrumentationClientPath, getRouteManifest) {
|
|
38
|
+
let isDev = false;
|
|
7
39
|
return {
|
|
8
40
|
name: "vinext:instrumentation-client",
|
|
9
|
-
|
|
41
|
+
configResolved(config) {
|
|
42
|
+
isDev = config.command === "serve";
|
|
43
|
+
},
|
|
10
44
|
transform(code, id) {
|
|
11
45
|
const instrumentationClientPath = getInstrumentationClientPath();
|
|
12
46
|
if (!instrumentationClientPath) return null;
|
|
13
47
|
if (normalizePath(stripViteModuleQuery(id)) !== instrumentationClientPath) return null;
|
|
14
|
-
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
48
|
+
const routeManifest = getRouteManifest();
|
|
49
|
+
const shouldInjectManifest = routeManifest !== void 0 && !code.includes("globalThis[\"_sentryRouteManifest\"]");
|
|
50
|
+
const shouldInjectDevTimer = isDev && !code.includes("__vinextInstrumentationClientStart");
|
|
51
|
+
if (!shouldInjectManifest && !shouldInjectDevTimer) return null;
|
|
52
|
+
const insertPos = insertionPositionAfterDirectives(code);
|
|
18
53
|
const s = new MagicString(code);
|
|
19
|
-
|
|
20
|
-
s.
|
|
54
|
+
const preamble = [shouldInjectManifest ? `globalThis["_sentryRouteManifest"] = ${JSON.stringify(routeManifest)};` : "", shouldInjectDevTimer ? "const __vinextInstrumentationClientStart = performance.now();" : ""].filter(Boolean).join("\n");
|
|
55
|
+
s.appendLeft(insertPos, `\n${preamble}\n`);
|
|
56
|
+
if (shouldInjectDevTimer) s.append("\nconst __vinextInstrumentationClientEnd = performance.now();\nconst __vinextInstrumentationClientDuration = __vinextInstrumentationClientEnd - __vinextInstrumentationClientStart;\n// Match Next.js: only report slow client instrumentation during dev.\n// Production should execute the hook without additional timing overhead.\nif (__vinextInstrumentationClientDuration > 16) {\n console.log(`[Client Instrumentation Hook] Slow execution detected: ${__vinextInstrumentationClientDuration.toFixed(0)}ms (Note: Code download overhead is not included in this measurement)`);\n}\n");
|
|
21
57
|
return magicStringTransformResult(s, { hires: true });
|
|
22
58
|
}
|
|
23
59
|
};
|
|
24
60
|
}
|
|
25
61
|
//#endregion
|
|
26
|
-
export { createInstrumentationClientTransformPlugin };
|
|
62
|
+
export { createInstrumentationClientTransformPlugin, createInstrumentationServerTransformPlugin };
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
//#region src/plugins/middleware-export-validation.d.ts
|
|
2
|
-
declare function hasValidMiddlewareModuleExport(source: string, id: string, isProxy: boolean): boolean;
|
|
3
|
-
declare function validateMiddlewareModuleExports(source: string, id: string, filePath: string, isProxy: boolean): void;
|
|
4
|
-
//#endregion
|
|
5
|
-
export { hasValidMiddlewareModuleExport, validateMiddlewareModuleExports };
|
|
2
|
+
export declare function hasValidMiddlewareModuleExport(source: string, id: string, isProxy: boolean): boolean;
|
|
3
|
+
export declare function validateMiddlewareModuleExports(source: string, id: string, filePath: string, isProxy: boolean): void;
|
|
4
|
+
//#endregion
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { createMiddlewareMissingExportError } from "../server/middleware-runtime.js";
|
|
2
1
|
import { getAstName, scriptParserLanguage } from "./ast-utils.js";
|
|
2
|
+
import { createMiddlewareMissingExportError } from "../server/middleware-runtime.js";
|
|
3
3
|
import { parseAst } from "vite";
|
|
4
4
|
//#region src/plugins/middleware-export-validation.ts
|
|
5
5
|
function hasValidMiddlewareModuleExport(source, id, isProxy) {
|
|
@@ -11,9 +11,9 @@ function hasValidMiddlewareModuleExport(source, id, isProxy) {
|
|
|
11
11
|
const declaration = statement.declaration;
|
|
12
12
|
if (declaration?.type === "FunctionDeclaration" && getAstName(declaration.id) === expectedExport) return true;
|
|
13
13
|
if (declaration?.type === "VariableDeclaration") {
|
|
14
|
-
for (const declarator of declaration.declarations
|
|
14
|
+
for (const declarator of declaration.declarations) if (getAstName(declarator.id) === expectedExport) return true;
|
|
15
15
|
}
|
|
16
|
-
for (const specifier of statement.specifiers
|
|
16
|
+
for (const specifier of statement.specifiers) if (getAstName(specifier.exported) === expectedExport) return true;
|
|
17
17
|
}
|
|
18
18
|
return false;
|
|
19
19
|
}
|
|
@@ -44,11 +44,10 @@ import { Plugin } from "vite";
|
|
|
44
44
|
* `WEBPACK_LAYERS.GROUP.neutralTarget`:
|
|
45
45
|
* https://github.com/vercel/next.js/blob/canary/packages/next/src/build/webpack-config.ts
|
|
46
46
|
*/
|
|
47
|
-
declare function createMiddlewareServerOnlyPlugin(options: {
|
|
47
|
+
export declare function createMiddlewareServerOnlyPlugin(options: {
|
|
48
48
|
getMiddlewarePath: () => string | null;
|
|
49
49
|
getCanonicalMiddlewarePath: () => string | null;
|
|
50
50
|
isNeutralServerModule?: (id: string) => boolean;
|
|
51
51
|
serverOnlyShimPath: string;
|
|
52
52
|
}): Plugin;
|
|
53
|
-
//#endregion
|
|
54
|
-
export { createMiddlewareServerOnlyPlugin };
|
|
53
|
+
//#endregion
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { Alias } from "vite";
|
|
2
2
|
//#region src/plugins/og-asset-ownership.d.ts
|
|
3
|
-
type OgAssetModuleBoundary = {
|
|
3
|
+
export type OgAssetModuleBoundary = {
|
|
4
4
|
assetRoot: string;
|
|
5
5
|
moduleDir: string;
|
|
6
6
|
};
|
|
7
|
-
declare class OgAssetOwnership {
|
|
7
|
+
export declare class OgAssetOwnership {
|
|
8
8
|
private projectRoot;
|
|
9
9
|
private readonly linkedPackageRoots;
|
|
10
10
|
private readonly dependencyPackageNames;
|
|
@@ -22,5 +22,4 @@ declare class OgAssetOwnership {
|
|
|
22
22
|
private resolveAliasPackageRoot;
|
|
23
23
|
private resolveConfiguredAliasRoot;
|
|
24
24
|
}
|
|
25
|
-
//#endregion
|
|
26
|
-
export { OgAssetModuleBoundary, OgAssetOwnership };
|
|
25
|
+
//#endregion
|
|
@@ -10,7 +10,7 @@ import { Plugin } from "vite";
|
|
|
10
10
|
* correctly inside Cloudflare Workers where `import.meta.url` is not a
|
|
11
11
|
* valid file URL.
|
|
12
12
|
*/
|
|
13
|
-
declare function createOgInlineFetchAssetsPlugin(): Plugin;
|
|
13
|
+
export declare function createOgInlineFetchAssetsPlugin(): Plugin;
|
|
14
14
|
/**
|
|
15
15
|
* Copy a single root copy of each requested WASM asset from `sourceDir` into
|
|
16
16
|
* `outDir`, skipping any asset whose source is missing or whose destination
|
|
@@ -21,7 +21,7 @@ declare function createOgInlineFetchAssetsPlugin(): Plugin;
|
|
|
21
21
|
* install (whose `yoga.wasm` is only materialized as a side effect of the
|
|
22
22
|
* `vinext:og-font-patch` transform during a build).
|
|
23
23
|
*/
|
|
24
|
-
declare function copyMissingOgWasm(opts: {
|
|
24
|
+
export declare function copyMissingOgWasm(opts: {
|
|
25
25
|
outDir: string;
|
|
26
26
|
sourceDir: string;
|
|
27
27
|
assets: readonly string[];
|
|
@@ -44,6 +44,5 @@ declare function copyMissingOgWasm(opts: {
|
|
|
44
44
|
* The decision keys off "did the bundler emit this asset?", never the deploy
|
|
45
45
|
* target — so it helps Node/self-hosted builds as well as Cloudflare Workers.
|
|
46
46
|
*/
|
|
47
|
-
declare function createOgAssetsPlugin(): Plugin;
|
|
48
|
-
//#endregion
|
|
49
|
-
export { copyMissingOgWasm, createOgAssetsPlugin, createOgInlineFetchAssetsPlugin };
|
|
47
|
+
export declare function createOgAssetsPlugin(): Plugin;
|
|
48
|
+
//#endregion
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from "../deps/.pnpm/pathslash@0.1.0/deps/pathslash/dist/index.js";
|
|
2
2
|
import { magicStringTransformResult } from "./transform-result.js";
|
|
3
|
+
import { resolveHarfbuzzWasmPath } from "./og-harfbuzz.js";
|
|
3
4
|
import { OgAssetOwnership } from "./og-asset-ownership.js";
|
|
4
5
|
import { createRequire } from "node:module";
|
|
5
6
|
import fs from "node:fs";
|
|
@@ -94,7 +95,11 @@ function createOgInlineFetchAssetsPlugin() {
|
|
|
94
95
|
}
|
|
95
96
|
};
|
|
96
97
|
}
|
|
97
|
-
const OG_WASM_ASSETS = [
|
|
98
|
+
const OG_WASM_ASSETS = [
|
|
99
|
+
"resvg.wasm",
|
|
100
|
+
"yoga.wasm",
|
|
101
|
+
"hb.wasm"
|
|
102
|
+
];
|
|
98
103
|
/**
|
|
99
104
|
* Find an emitted WASM asset in the output bundle whose name corresponds to the
|
|
100
105
|
* given base file (e.g. base `resvg.wasm` matches the emitted `resvg-HASH.wasm`).
|
|
@@ -105,15 +110,20 @@ const OG_WASM_ASSETS = ["resvg.wasm", "yoga.wasm"];
|
|
|
105
110
|
*
|
|
106
111
|
* @returns the emitted asset's `fileName` (relative to outDir), or null.
|
|
107
112
|
*/
|
|
108
|
-
function findEmittedWasmAsset(bundle, baseName) {
|
|
113
|
+
function findEmittedWasmAsset(bundle, baseName, expectedSource) {
|
|
109
114
|
const stem = baseName.replace(/\.wasm$/, "");
|
|
110
115
|
const re = new RegExp(`^${stem}(?:[-.][\\w-]+)?\\.wasm$`);
|
|
111
116
|
for (const output of Object.values(bundle)) {
|
|
112
117
|
if (output.type !== "asset") continue;
|
|
113
|
-
if (re.test(path.basename(output.fileName)))
|
|
118
|
+
if (!re.test(path.basename(output.fileName))) continue;
|
|
119
|
+
if (expectedSource && !isSameBytes(output.source, expectedSource)) continue;
|
|
120
|
+
return output.fileName;
|
|
114
121
|
}
|
|
115
122
|
return null;
|
|
116
123
|
}
|
|
124
|
+
function isSameBytes(source, expected) {
|
|
125
|
+
return source instanceof Uint8Array && Buffer.from(source).equals(expected);
|
|
126
|
+
}
|
|
117
127
|
/**
|
|
118
128
|
* Build the regex that matches the Node.js fallback reference
|
|
119
129
|
* `new URL("./<base>", import.meta.url)` for a given WASM base name.
|
|
@@ -162,7 +172,7 @@ function copyMissingOgWasm(opts) {
|
|
|
162
172
|
* target — so it helps Node/self-hosted builds as well as Cloudflare Workers.
|
|
163
173
|
*/
|
|
164
174
|
function createOgAssetsPlugin() {
|
|
165
|
-
|
|
175
|
+
const dedupedBasesByEnvironment = /* @__PURE__ */ new Map();
|
|
166
176
|
return {
|
|
167
177
|
name: "vinext:og-assets",
|
|
168
178
|
apply: "build",
|
|
@@ -170,17 +180,18 @@ function createOgAssetsPlugin() {
|
|
|
170
180
|
generateBundle: {
|
|
171
181
|
order: "post",
|
|
172
182
|
handler(_options, bundle) {
|
|
173
|
-
|
|
174
|
-
|
|
183
|
+
const envName = this.environment?.name;
|
|
184
|
+
if (envName !== "rsc" && envName !== "ssr") return;
|
|
185
|
+
const dedupedBases = /* @__PURE__ */ new Set();
|
|
186
|
+
dedupedBasesByEnvironment.set(envName, dedupedBases);
|
|
175
187
|
const chunks = Object.values(bundle).filter((o) => o.type === "chunk");
|
|
176
188
|
for (const base of OG_WASM_ASSETS) {
|
|
177
189
|
if (!chunks.some((c) => c.code.includes(base))) continue;
|
|
178
|
-
const emitted = findEmittedWasmAsset(bundle, base);
|
|
179
|
-
if (!emitted) continue;
|
|
190
|
+
const emitted = findEmittedWasmAsset(bundle, base, base === "hb.wasm" ? fs.readFileSync(resolveHarfbuzzWasmPath(createRequire(import.meta.url).resolve("@vercel/og"))) : void 0);
|
|
180
191
|
for (const chunk of chunks) {
|
|
181
192
|
const re = fallbackUrlRegex(base);
|
|
182
193
|
const chunkDir = path.dirname(chunk.fileName);
|
|
183
|
-
const rel = path.relative(chunkDir, emitted);
|
|
194
|
+
const rel = path.relative(chunkDir, emitted ?? base);
|
|
184
195
|
const ref = rel.startsWith(".") ? rel : `./${rel}`;
|
|
185
196
|
const s = new MagicString(chunk.code);
|
|
186
197
|
let edited = false;
|
|
@@ -197,7 +208,7 @@ function createOgAssetsPlugin() {
|
|
|
197
208
|
source: chunk.fileName
|
|
198
209
|
});
|
|
199
210
|
}
|
|
200
|
-
dedupedBases.add(base);
|
|
211
|
+
if (emitted) dedupedBases.add(base);
|
|
201
212
|
}
|
|
202
213
|
}
|
|
203
214
|
},
|
|
@@ -205,18 +216,26 @@ function createOgAssetsPlugin() {
|
|
|
205
216
|
sequential: true,
|
|
206
217
|
order: "post",
|
|
207
218
|
async handler(options, bundle) {
|
|
208
|
-
|
|
219
|
+
const envName = this.environment?.name;
|
|
220
|
+
if (envName !== "rsc" && envName !== "ssr") return;
|
|
209
221
|
const outDir = options.dir;
|
|
210
222
|
if (!outDir) return;
|
|
211
223
|
const chunkCode = Object.values(bundle).map((output) => output.type === "chunk" ? output.code : "").join("\n");
|
|
212
|
-
const
|
|
224
|
+
const dedupedBases = dedupedBasesByEnvironment.get(envName);
|
|
225
|
+
dedupedBasesByEnvironment.delete(envName);
|
|
226
|
+
const referencedAssets = OG_WASM_ASSETS.filter((asset) => chunkCode.includes(asset) && !dedupedBases?.has(asset));
|
|
213
227
|
if (referencedAssets.length === 0) return;
|
|
214
228
|
try {
|
|
215
229
|
const ogPkgPath = createRequire(import.meta.url).resolve("@vercel/og/package.json");
|
|
216
230
|
copyMissingOgWasm({
|
|
217
231
|
outDir,
|
|
218
232
|
sourceDir: path.join(path.dirname(ogPkgPath), "dist"),
|
|
219
|
-
assets: referencedAssets
|
|
233
|
+
assets: referencedAssets.filter((asset) => asset !== "hb.wasm")
|
|
234
|
+
});
|
|
235
|
+
if (referencedAssets.includes("hb.wasm")) copyMissingOgWasm({
|
|
236
|
+
outDir,
|
|
237
|
+
sourceDir: path.dirname(resolveHarfbuzzWasmPath(ogPkgPath)),
|
|
238
|
+
assets: ["hb.wasm"]
|
|
220
239
|
});
|
|
221
240
|
} catch {}
|
|
222
241
|
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { Plugin } from "vite";
|
|
2
|
+
//#region src/plugins/og-harfbuzz.d.ts
|
|
3
|
+
/**
|
|
4
|
+
* Resolve the `hb.wasm` binary that matches the glue inlined in @vercel/og.
|
|
5
|
+
* @vercel/og and satori pin exact versions, so resolving through
|
|
6
|
+
* @vercel/og → satori → harfbuzzjs yields the build the bundle was made from.
|
|
7
|
+
*/
|
|
8
|
+
export declare function resolveHarfbuzzWasmPath(ogEntry: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Read every function type in a WASM binary as an Emscripten signature (result
|
|
11
|
+
* letter, or `v` for none, then parameters). Any callback HarfBuzz calls
|
|
12
|
+
* through its function table must have one of these types, so adapters for
|
|
13
|
+
* all of them cover every callback the glue can register.
|
|
14
|
+
*/
|
|
15
|
+
export declare function readWasmFunctionSignatures(wasm: Uint8Array): string[];
|
|
16
|
+
/**
|
|
17
|
+
* Build the module Emscripten's `convertJsFunctionToWasm` compiles for a
|
|
18
|
+
* signature: it imports a JavaScript function as `e.f` and re-exports it as
|
|
19
|
+
* `f`. Every section in it is shorter than 128 bytes, so each length and count
|
|
20
|
+
* is a single LEB128 byte.
|
|
21
|
+
*/
|
|
22
|
+
export declare function createHarfbuzzCallbackWasm(signature: string): Uint8Array<ArrayBuffer>;
|
|
23
|
+
export declare function createOgHarfbuzzPlugin(): Plugin;
|
|
24
|
+
//#endregion
|