@qzsy/vinext 0.1.7
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/LICENSE +21 -0
- package/README.md +773 -0
- package/dist/build/assets-ignore.d.ts +32 -0
- package/dist/build/assets-ignore.js +48 -0
- package/dist/build/clean-output.d.ts +13 -0
- package/dist/build/clean-output.js +34 -0
- package/dist/build/client-build-config.d.ts +171 -0
- package/dist/build/client-build-config.js +270 -0
- package/dist/build/css-url-assets.d.ts +29 -0
- package/dist/build/css-url-assets.js +213 -0
- package/dist/build/google-fonts/build-url.d.ts +9 -0
- package/dist/build/google-fonts/build-url.js +28 -0
- package/dist/build/google-fonts/fallback-metrics-data.js +14029 -0
- package/dist/build/google-fonts/fallback-metrics.d.ts +12 -0
- package/dist/build/google-fonts/fallback-metrics.js +44 -0
- package/dist/build/google-fonts/find-font-files-in-css.d.ts +16 -0
- package/dist/build/google-fonts/find-font-files-in-css.js +28 -0
- package/dist/build/google-fonts/font-data.js +24983 -0
- package/dist/build/google-fonts/font-metadata.d.ts +16 -0
- package/dist/build/google-fonts/font-metadata.js +5 -0
- package/dist/build/google-fonts/get-axes.d.ts +6 -0
- package/dist/build/google-fonts/get-axes.js +37 -0
- package/dist/build/google-fonts/sort-variants.d.ts +4 -0
- package/dist/build/google-fonts/sort-variants.js +12 -0
- package/dist/build/google-fonts/validate.d.ts +27 -0
- package/dist/build/google-fonts/validate.js +54 -0
- package/dist/build/inline-css.d.ts +6 -0
- package/dist/build/inline-css.js +48 -0
- package/dist/build/layout-classification-types.d.ts +61 -0
- package/dist/build/layout-classification-types.js +1 -0
- package/dist/build/layout-classification.d.ts +59 -0
- package/dist/build/layout-classification.js +98 -0
- package/dist/build/next-client-runtime-manifests.d.ts +14 -0
- package/dist/build/next-client-runtime-manifests.js +39 -0
- package/dist/build/nitro-route-rules.d.ts +49 -0
- package/dist/build/nitro-route-rules.js +79 -0
- package/dist/build/precompress.d.ts +27 -0
- package/dist/build/precompress.js +110 -0
- package/dist/build/prerender.d.ts +209 -0
- package/dist/build/prerender.js +932 -0
- package/dist/build/report.d.ts +132 -0
- package/dist/build/report.js +504 -0
- package/dist/build/route-classification-injector.d.ts +34 -0
- package/dist/build/route-classification-injector.js +59 -0
- package/dist/build/route-classification-manifest.d.ts +52 -0
- package/dist/build/route-classification-manifest.js +143 -0
- package/dist/build/run-prerender.d.ts +61 -0
- package/dist/build/run-prerender.js +224 -0
- package/dist/build/server-manifest.d.ts +18 -0
- package/dist/build/server-manifest.js +22 -0
- package/dist/build/ssr-manifest.d.ts +18 -0
- package/dist/build/ssr-manifest.js +69 -0
- package/dist/build/standalone.d.ts +31 -0
- package/dist/build/standalone.js +203 -0
- package/dist/build/static-export.d.ts +55 -0
- package/dist/build/static-export.js +60 -0
- package/dist/cache/cache-adapters-virtual.d.ts +50 -0
- package/dist/cache/cache-adapters-virtual.js +45 -0
- package/dist/cache.d.ts +2 -0
- package/dist/cache.js +2 -0
- package/dist/check.d.ts +87 -0
- package/dist/check.js +1037 -0
- package/dist/cli-args.d.ts +33 -0
- package/dist/cli-args.js +124 -0
- package/dist/cli.d.ts +1 -0
- package/dist/cli.js +744 -0
- package/dist/client/app-nav-failure-handler.d.ts +8 -0
- package/dist/client/app-nav-failure-handler.js +44 -0
- package/dist/client/empty-module.d.ts +1 -0
- package/dist/client/empty-module.js +1 -0
- package/dist/client/instrumentation-client-inject.d.ts +33 -0
- package/dist/client/instrumentation-client-inject.js +55 -0
- package/dist/client/instrumentation-client-state.d.ts +9 -0
- package/dist/client/instrumentation-client-state.js +17 -0
- package/dist/client/instrumentation-client.d.ts +7 -0
- package/dist/client/instrumentation-client.js +6 -0
- package/dist/client/navigation-runtime.d.ts +70 -0
- package/dist/client/navigation-runtime.js +169 -0
- package/dist/client/pages-router-link-navigation.d.ts +61 -0
- package/dist/client/pages-router-link-navigation.js +42 -0
- package/dist/client/validate-module-path.d.ts +17 -0
- package/dist/client/validate-module-path.js +24 -0
- package/dist/client/vinext-next-data.d.ts +44 -0
- package/dist/client/vinext-next-data.js +50 -0
- package/dist/client/window-next.d.ts +168 -0
- package/dist/client/window-next.js +57 -0
- package/dist/cloudflare/index.d.ts +3 -0
- package/dist/cloudflare/index.js +3 -0
- package/dist/cloudflare/src/cache/cdn-adapter.runtime.js +102 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.d.ts +126 -0
- package/dist/cloudflare/src/cache/kv-data-adapter.runtime.js +435 -0
- package/dist/cloudflare/src/utils/cache-control-metadata.js +20 -0
- package/dist/cloudflare/tpr.d.ts +82 -0
- package/dist/cloudflare/tpr.js +558 -0
- package/dist/config/config-matchers.d.ts +257 -0
- package/dist/config/config-matchers.js +1046 -0
- package/dist/config/dotenv.d.ts +56 -0
- package/dist/config/dotenv.js +88 -0
- package/dist/config/next-config.d.ts +540 -0
- package/dist/config/next-config.js +1050 -0
- package/dist/config/tsconfig-paths.d.ts +21 -0
- package/dist/config/tsconfig-paths.js +157 -0
- package/dist/deploy.d.ts +190 -0
- package/dist/deploy.js +1033 -0
- package/dist/entries/app-browser-entry.d.ts +29 -0
- package/dist/entries/app-browser-entry.js +83 -0
- package/dist/entries/app-rsc-entry.d.ts +81 -0
- package/dist/entries/app-rsc-entry.js +943 -0
- package/dist/entries/app-rsc-manifest.d.ts +53 -0
- package/dist/entries/app-rsc-manifest.js +294 -0
- package/dist/entries/app-ssr-entry.d.ts +15 -0
- package/dist/entries/app-ssr-entry.js +24 -0
- package/dist/entries/pages-client-entry.d.ts +11 -0
- package/dist/entries/pages-client-entry.js +204 -0
- package/dist/entries/pages-entry-helpers.d.ts +2 -0
- package/dist/entries/pages-entry-helpers.js +2 -0
- package/dist/entries/pages-server-entry.d.ts +11 -0
- package/dist/entries/pages-server-entry.js +398 -0
- package/dist/entries/runtime-entry-module.d.ts +25 -0
- package/dist/entries/runtime-entry-module.js +46 -0
- package/dist/index.d.ts +115 -0
- package/dist/index.js +2661 -0
- package/dist/init.d.ts +69 -0
- package/dist/init.js +253 -0
- package/dist/plugins/ast-utils.d.ts +20 -0
- package/dist/plugins/ast-utils.js +78 -0
- package/dist/plugins/async-hooks-stub.d.ts +18 -0
- package/dist/plugins/async-hooks-stub.js +40 -0
- package/dist/plugins/client-reference-dedup.d.ts +35 -0
- package/dist/plugins/client-reference-dedup.js +189 -0
- package/dist/plugins/css-data-url.d.ts +6 -0
- package/dist/plugins/css-data-url.js +83 -0
- package/dist/plugins/dynamic-preload-metadata.d.ts +13 -0
- package/dist/plugins/dynamic-preload-metadata.js +413 -0
- package/dist/plugins/extensionless-dynamic-import.d.ts +6 -0
- package/dist/plugins/extensionless-dynamic-import.js +155 -0
- package/dist/plugins/fonts.d.ts +95 -0
- package/dist/plugins/fonts.js +711 -0
- package/dist/plugins/import-meta-url.d.ts +16 -0
- package/dist/plugins/import-meta-url.js +353 -0
- package/dist/plugins/instrumentation-client.d.ts +6 -0
- package/dist/plugins/instrumentation-client.js +27 -0
- package/dist/plugins/middleware-export-validation.d.ts +5 -0
- package/dist/plugins/middleware-export-validation.js +36 -0
- package/dist/plugins/middleware-server-only.d.ts +53 -0
- package/dist/plugins/middleware-server-only.js +90 -0
- package/dist/plugins/og-asset-ownership.d.ts +27 -0
- package/dist/plugins/og-asset-ownership.js +285 -0
- package/dist/plugins/og-assets.d.ts +50 -0
- package/dist/plugins/og-assets.js +229 -0
- package/dist/plugins/optimize-imports.d.ts +42 -0
- package/dist/plugins/optimize-imports.js +587 -0
- package/dist/plugins/postcss.d.ts +26 -0
- package/dist/plugins/postcss.js +96 -0
- package/dist/plugins/remove-console.d.ts +21 -0
- package/dist/plugins/remove-console.js +177 -0
- package/dist/plugins/require-context.d.ts +6 -0
- package/dist/plugins/require-context.js +185 -0
- package/dist/plugins/rsc-client-reference-loaders.d.ts +6 -0
- package/dist/plugins/rsc-client-reference-loaders.js +46 -0
- package/dist/plugins/rsc-client-shim-excludes.d.ts +6 -0
- package/dist/plugins/rsc-client-shim-excludes.js +35 -0
- package/dist/plugins/sass.d.ts +62 -0
- package/dist/plugins/sass.js +268 -0
- package/dist/plugins/server-externals-manifest.d.ts +26 -0
- package/dist/plugins/server-externals-manifest.js +81 -0
- package/dist/plugins/strip-server-exports.d.ts +21 -0
- package/dist/plugins/strip-server-exports.js +519 -0
- package/dist/plugins/typeof-window.d.ts +14 -0
- package/dist/plugins/typeof-window.js +150 -0
- package/dist/plugins/wasm-module-import.d.ts +15 -0
- package/dist/plugins/wasm-module-import.js +50 -0
- package/dist/routing/app-route-graph.d.ts +336 -0
- package/dist/routing/app-route-graph.js +1518 -0
- package/dist/routing/app-router.d.ts +30 -0
- package/dist/routing/app-router.js +59 -0
- package/dist/routing/file-matcher.d.ts +60 -0
- package/dist/routing/file-matcher.js +147 -0
- package/dist/routing/pages-router.d.ts +48 -0
- package/dist/routing/pages-router.js +163 -0
- package/dist/routing/route-matching.d.ts +27 -0
- package/dist/routing/route-matching.js +42 -0
- package/dist/routing/route-pattern.d.ts +64 -0
- package/dist/routing/route-pattern.js +165 -0
- package/dist/routing/route-trie.d.ts +67 -0
- package/dist/routing/route-trie.js +143 -0
- package/dist/routing/route-validation.d.ts +10 -0
- package/dist/routing/route-validation.js +101 -0
- package/dist/routing/utils.d.ts +117 -0
- package/dist/routing/utils.js +242 -0
- package/dist/server/accept-encoding.d.ts +29 -0
- package/dist/server/accept-encoding.js +95 -0
- package/dist/server/api-handler.d.ts +17 -0
- package/dist/server/api-handler.js +276 -0
- package/dist/server/app-action-request.d.ts +4 -0
- package/dist/server/app-action-request.js +9 -0
- package/dist/server/app-bfcache-id.d.ts +5 -0
- package/dist/server/app-bfcache-id.js +5 -0
- package/dist/server/app-bfcache-identity.d.ts +36 -0
- package/dist/server/app-bfcache-identity.js +156 -0
- package/dist/server/app-browser-action-result.d.ts +64 -0
- package/dist/server/app-browser-action-result.js +111 -0
- package/dist/server/app-browser-client-reuse-manifest.d.ts +12 -0
- package/dist/server/app-browser-client-reuse-manifest.js +101 -0
- package/dist/server/app-browser-entry.d.ts +1 -0
- package/dist/server/app-browser-entry.js +1087 -0
- package/dist/server/app-browser-error.d.ts +13 -0
- package/dist/server/app-browser-error.js +52 -0
- package/dist/server/app-browser-history-controller.d.ts +104 -0
- package/dist/server/app-browser-history-controller.js +210 -0
- package/dist/server/app-browser-hydration.d.ts +32 -0
- package/dist/server/app-browser-hydration.js +29 -0
- package/dist/server/app-browser-interception-context.d.ts +24 -0
- package/dist/server/app-browser-interception-context.js +43 -0
- package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
- package/dist/server/app-browser-mpa-navigation.js +42 -0
- package/dist/server/app-browser-navigation-controller.d.ts +109 -0
- package/dist/server/app-browser-navigation-controller.js +465 -0
- package/dist/server/app-browser-popstate.d.ts +26 -0
- package/dist/server/app-browser-popstate.js +44 -0
- package/dist/server/app-browser-rsc-redirect.d.ts +38 -0
- package/dist/server/app-browser-rsc-redirect.js +64 -0
- package/dist/server/app-browser-server-action-client.d.ts +32 -0
- package/dist/server/app-browser-server-action-client.js +128 -0
- package/dist/server/app-browser-server-action-navigation.d.ts +6 -0
- package/dist/server/app-browser-server-action-navigation.js +9 -0
- package/dist/server/app-browser-state.d.ts +140 -0
- package/dist/server/app-browser-state.js +315 -0
- package/dist/server/app-browser-stream.d.ts +28 -0
- package/dist/server/app-browser-stream.js +122 -0
- package/dist/server/app-browser-visible-commit.d.ts +78 -0
- package/dist/server/app-browser-visible-commit.js +241 -0
- package/dist/server/app-client-reference-preloader.d.ts +14 -0
- package/dist/server/app-client-reference-preloader.js +44 -0
- package/dist/server/app-elements-wire.d.ts +192 -0
- package/dist/server/app-elements-wire.js +443 -0
- package/dist/server/app-elements.d.ts +9 -0
- package/dist/server/app-elements.js +18 -0
- package/dist/server/app-fallback-renderer.d.ts +89 -0
- package/dist/server/app-fallback-renderer.js +136 -0
- package/dist/server/app-history-state.d.ts +85 -0
- package/dist/server/app-history-state.js +223 -0
- package/dist/server/app-hook-warning-suppression.d.ts +6 -0
- package/dist/server/app-hook-warning-suppression.js +10 -0
- package/dist/server/app-inline-css-client.d.ts +6 -0
- package/dist/server/app-inline-css-client.js +35 -0
- package/dist/server/app-interception-context-header.d.ts +32 -0
- package/dist/server/app-interception-context-header.js +42 -0
- package/dist/server/app-layout-param-observation.d.ts +43 -0
- package/dist/server/app-layout-param-observation.js +168 -0
- package/dist/server/app-middleware.d.ts +46 -0
- package/dist/server/app-middleware.js +168 -0
- package/dist/server/app-mounted-slots-header.d.ts +35 -0
- package/dist/server/app-mounted-slots-header.js +58 -0
- package/dist/server/app-optimistic-routing.d.ts +53 -0
- package/dist/server/app-optimistic-routing.js +227 -0
- package/dist/server/app-page-boundary-render.d.ts +85 -0
- package/dist/server/app-page-boundary-render.js +305 -0
- package/dist/server/app-page-boundary.d.ts +102 -0
- package/dist/server/app-page-boundary.js +120 -0
- package/dist/server/app-page-cache-finalizer.d.ts +62 -0
- package/dist/server/app-page-cache-finalizer.js +122 -0
- package/dist/server/app-page-cache-render.d.ts +53 -0
- package/dist/server/app-page-cache-render.js +91 -0
- package/dist/server/app-page-cache.d.ts +83 -0
- package/dist/server/app-page-cache.js +272 -0
- package/dist/server/app-page-dispatch.d.ts +223 -0
- package/dist/server/app-page-dispatch.js +610 -0
- package/dist/server/app-page-element-builder.d.ts +96 -0
- package/dist/server/app-page-element-builder.js +205 -0
- package/dist/server/app-page-execution.d.ts +138 -0
- package/dist/server/app-page-execution.js +328 -0
- package/dist/server/app-page-head.d.ts +65 -0
- package/dist/server/app-page-head.js +228 -0
- package/dist/server/app-page-method.d.ts +15 -0
- package/dist/server/app-page-method.js +25 -0
- package/dist/server/app-page-params.d.ts +8 -0
- package/dist/server/app-page-params.js +39 -0
- package/dist/server/app-page-ppr-runtime.d.ts +7 -0
- package/dist/server/app-page-ppr-runtime.js +70 -0
- package/dist/server/app-page-probe.d.ts +134 -0
- package/dist/server/app-page-probe.js +276 -0
- package/dist/server/app-page-render-identity.d.ts +21 -0
- package/dist/server/app-page-render-identity.js +40 -0
- package/dist/server/app-page-render-observation.d.ts +36 -0
- package/dist/server/app-page-render-observation.js +82 -0
- package/dist/server/app-page-render.d.ts +111 -0
- package/dist/server/app-page-render.js +602 -0
- package/dist/server/app-page-request.d.ts +137 -0
- package/dist/server/app-page-request.js +216 -0
- package/dist/server/app-page-response.d.ts +68 -0
- package/dist/server/app-page-response.js +120 -0
- package/dist/server/app-page-route-wiring.d.ts +151 -0
- package/dist/server/app-page-route-wiring.js +452 -0
- package/dist/server/app-page-search-params-observation.d.ts +10 -0
- package/dist/server/app-page-search-params-observation.js +20 -0
- package/dist/server/app-page-segment-state.d.ts +9 -0
- package/dist/server/app-page-segment-state.js +80 -0
- package/dist/server/app-page-stream.d.ts +151 -0
- package/dist/server/app-page-stream.js +143 -0
- package/dist/server/app-pages-bridge.d.ts +63 -0
- package/dist/server/app-pages-bridge.js +63 -0
- package/dist/server/app-post-middleware-context.d.ts +15 -0
- package/dist/server/app-post-middleware-context.js +26 -0
- package/dist/server/app-ppr-fallback-shell-render.d.ts +18 -0
- package/dist/server/app-ppr-fallback-shell-render.js +26 -0
- package/dist/server/app-ppr-fallback-shell.d.ts +33 -0
- package/dist/server/app-ppr-fallback-shell.js +89 -0
- package/dist/server/app-prerender-endpoints.d.ts +18 -0
- package/dist/server/app-prerender-endpoints.js +94 -0
- package/dist/server/app-prerender-static-params.d.ts +30 -0
- package/dist/server/app-prerender-static-params.js +81 -0
- package/dist/server/app-render-dependency.d.ts +14 -0
- package/dist/server/app-render-dependency.js +41 -0
- package/dist/server/app-request-context.d.ts +20 -0
- package/dist/server/app-request-context.js +29 -0
- package/dist/server/app-route-handler-cache.d.ts +46 -0
- package/dist/server/app-route-handler-cache.js +78 -0
- package/dist/server/app-route-handler-dispatch.d.ts +49 -0
- package/dist/server/app-route-handler-dispatch.js +163 -0
- package/dist/server/app-route-handler-execution.d.ts +86 -0
- package/dist/server/app-route-handler-execution.js +128 -0
- package/dist/server/app-route-handler-policy.d.ts +55 -0
- package/dist/server/app-route-handler-policy.js +58 -0
- package/dist/server/app-route-handler-response.d.ts +28 -0
- package/dist/server/app-route-handler-response.js +145 -0
- package/dist/server/app-route-handler-runtime.d.ts +39 -0
- package/dist/server/app-route-handler-runtime.js +250 -0
- package/dist/server/app-route-module-loader.d.ts +91 -0
- package/dist/server/app-route-module-loader.js +83 -0
- package/dist/server/app-router-entry.d.ts +13 -0
- package/dist/server/app-router-entry.js +49 -0
- package/dist/server/app-rsc-cache-busting.d.ts +64 -0
- package/dist/server/app-rsc-cache-busting.js +206 -0
- package/dist/server/app-rsc-embedded-chunks.d.ts +8 -0
- package/dist/server/app-rsc-embedded-chunks.js +32 -0
- package/dist/server/app-rsc-error-handler.d.ts +20 -0
- package/dist/server/app-rsc-error-handler.js +28 -0
- package/dist/server/app-rsc-errors.d.ts +40 -0
- package/dist/server/app-rsc-errors.js +60 -0
- package/dist/server/app-rsc-handler.d.ts +201 -0
- package/dist/server/app-rsc-handler.js +538 -0
- package/dist/server/app-rsc-render-mode.d.ts +11 -0
- package/dist/server/app-rsc-render-mode.js +25 -0
- package/dist/server/app-rsc-request-normalization.d.ts +48 -0
- package/dist/server/app-rsc-request-normalization.js +75 -0
- package/dist/server/app-rsc-response-finalizer.d.ts +37 -0
- package/dist/server/app-rsc-response-finalizer.js +54 -0
- package/dist/server/app-rsc-route-matching.d.ts +93 -0
- package/dist/server/app-rsc-route-matching.js +134 -0
- package/dist/server/app-segment-config.d.ts +46 -0
- package/dist/server/app-segment-config.js +113 -0
- package/dist/server/app-server-action-execution.d.ts +219 -0
- package/dist/server/app-server-action-execution.js +767 -0
- package/dist/server/app-ssr-entry.d.ts +52 -0
- package/dist/server/app-ssr-entry.js +295 -0
- package/dist/server/app-ssr-error-meta.d.ts +13 -0
- package/dist/server/app-ssr-error-meta.js +48 -0
- package/dist/server/app-ssr-router-instance.d.ts +6 -0
- package/dist/server/app-ssr-router-instance.js +24 -0
- package/dist/server/app-ssr-stream.d.ts +60 -0
- package/dist/server/app-ssr-stream.js +408 -0
- package/dist/server/app-static-generation.d.ts +15 -0
- package/dist/server/app-static-generation.js +19 -0
- package/dist/server/app-visited-response-cache.d.ts +23 -0
- package/dist/server/app-visited-response-cache.js +19 -0
- package/dist/server/artifact-compatibility.d.ts +54 -0
- package/dist/server/artifact-compatibility.js +91 -0
- package/dist/server/before-interactive-head.d.ts +17 -0
- package/dist/server/before-interactive-head.js +35 -0
- package/dist/server/cache-control.d.ts +37 -0
- package/dist/server/cache-control.js +56 -0
- package/dist/server/cache-headers.d.ts +6 -0
- package/dist/server/cache-headers.js +17 -0
- package/dist/server/cache-proof.d.ts +364 -0
- package/dist/server/cache-proof.js +794 -0
- package/dist/server/client-reuse-manifest.d.ts +104 -0
- package/dist/server/client-reuse-manifest.js +209 -0
- package/dist/server/client-trace-metadata.d.ts +30 -0
- package/dist/server/client-trace-metadata.js +81 -0
- package/dist/server/cookie-utils.d.ts +12 -0
- package/dist/server/cookie-utils.js +18 -0
- package/dist/server/csp.d.ts +10 -0
- package/dist/server/csp.js +41 -0
- package/dist/server/default-global-error-module.d.ts +19 -0
- package/dist/server/default-global-error-module.js +18 -0
- package/dist/server/default-not-found-module.d.ts +19 -0
- package/dist/server/default-not-found-module.js +18 -0
- package/dist/server/defer-until-stream-consumed.d.ts +7 -0
- package/dist/server/defer-until-stream-consumed.js +34 -0
- package/dist/server/dev-error-overlay-store.d.ts +39 -0
- package/dist/server/dev-error-overlay-store.js +86 -0
- package/dist/server/dev-error-overlay.d.ts +51 -0
- package/dist/server/dev-error-overlay.js +1341 -0
- package/dist/server/dev-initial-server-error.d.ts +9 -0
- package/dist/server/dev-initial-server-error.js +26 -0
- package/dist/server/dev-lockfile.d.ts +109 -0
- package/dist/server/dev-lockfile.js +179 -0
- package/dist/server/dev-module-runner.d.ts +30 -0
- package/dist/server/dev-module-runner.js +91 -0
- package/dist/server/dev-origin-check.d.ts +62 -0
- package/dist/server/dev-origin-check.js +156 -0
- package/dist/server/dev-route-files.d.ts +6 -0
- package/dist/server/dev-route-files.js +71 -0
- package/dist/server/dev-server.d.ts +58 -0
- package/dist/server/dev-server.js +1114 -0
- package/dist/server/dev-stack-sourcemap-endpoint.d.ts +4 -0
- package/dist/server/dev-stack-sourcemap-endpoint.js +4 -0
- package/dist/server/dev-stack-sourcemap.d.ts +43 -0
- package/dist/server/dev-stack-sourcemap.js +443 -0
- package/dist/server/document-initial-head.d.ts +6 -0
- package/dist/server/document-initial-head.js +33 -0
- package/dist/server/edge-api-runtime.d.ts +4 -0
- package/dist/server/edge-api-runtime.js +6 -0
- package/dist/server/file-based-metadata.d.ts +29 -0
- package/dist/server/file-based-metadata.js +401 -0
- package/dist/server/headers.d.ts +114 -0
- package/dist/server/headers.js +136 -0
- package/dist/server/html.d.ts +28 -0
- package/dist/server/html.js +41 -0
- package/dist/server/http-error-responses.d.ts +91 -0
- package/dist/server/http-error-responses.js +105 -0
- package/dist/server/hybrid-route-priority.d.ts +22 -0
- package/dist/server/hybrid-route-priority.js +33 -0
- package/dist/server/image-optimization.d.ts +130 -0
- package/dist/server/image-optimization.js +247 -0
- package/dist/server/implicit-tags.d.ts +6 -0
- package/dist/server/implicit-tags.js +44 -0
- package/dist/server/instrumentation-runtime.d.ts +49 -0
- package/dist/server/instrumentation-runtime.js +35 -0
- package/dist/server/instrumentation.d.ts +85 -0
- package/dist/server/instrumentation.js +130 -0
- package/dist/server/isr-cache.d.ts +127 -0
- package/dist/server/isr-cache.js +282 -0
- package/dist/server/isr-decision.d.ts +79 -0
- package/dist/server/isr-decision.js +70 -0
- package/dist/server/metadata-route-build-data.d.ts +24 -0
- package/dist/server/metadata-route-build-data.js +148 -0
- package/dist/server/metadata-route-response.d.ts +16 -0
- package/dist/server/metadata-route-response.js +205 -0
- package/dist/server/metadata-routes.d.ts +139 -0
- package/dist/server/metadata-routes.js +433 -0
- package/dist/server/middleware-matcher.d.ts +14 -0
- package/dist/server/middleware-matcher.js +111 -0
- package/dist/server/middleware-request-headers.d.ts +11 -0
- package/dist/server/middleware-request-headers.js +65 -0
- package/dist/server/middleware-response-headers.d.ts +12 -0
- package/dist/server/middleware-response-headers.js +42 -0
- package/dist/server/middleware-runtime.d.ts +67 -0
- package/dist/server/middleware-runtime.js +240 -0
- package/dist/server/middleware.d.ts +62 -0
- package/dist/server/middleware.js +114 -0
- package/dist/server/navigation-planner.d.ts +308 -0
- package/dist/server/navigation-planner.js +831 -0
- package/dist/server/navigation-trace.d.ts +68 -0
- package/dist/server/navigation-trace.js +71 -0
- package/dist/server/next-error-digest.d.ts +44 -0
- package/dist/server/next-error-digest.js +40 -0
- package/dist/server/normalize-path.d.ts +38 -0
- package/dist/server/normalize-path.js +70 -0
- package/dist/server/open-redirect.d.ts +12 -0
- package/dist/server/open-redirect.js +21 -0
- package/dist/server/operation-token.d.ts +40 -0
- package/dist/server/operation-token.js +85 -0
- package/dist/server/otel-tracer-extension.d.ts +45 -0
- package/dist/server/otel-tracer-extension.js +89 -0
- package/dist/server/pages-api-route.d.ts +83 -0
- package/dist/server/pages-api-route.js +75 -0
- package/dist/server/pages-asset-tags.d.ts +78 -0
- package/dist/server/pages-asset-tags.js +126 -0
- package/dist/server/pages-body-parser-config.d.ts +59 -0
- package/dist/server/pages-body-parser-config.js +77 -0
- package/dist/server/pages-data-route.d.ts +121 -0
- package/dist/server/pages-data-route.js +157 -0
- package/dist/server/pages-default-404.d.ts +30 -0
- package/dist/server/pages-default-404.js +38 -0
- package/dist/server/pages-dev-module-url.d.ts +4 -0
- package/dist/server/pages-dev-module-url.js +15 -0
- package/dist/server/pages-document-initial-props.d.ts +77 -0
- package/dist/server/pages-document-initial-props.js +109 -0
- package/dist/server/pages-get-initial-props.d.ts +67 -0
- package/dist/server/pages-get-initial-props.js +92 -0
- package/dist/server/pages-i18n.d.ts +106 -0
- package/dist/server/pages-i18n.js +183 -0
- package/dist/server/pages-media-type.d.ts +15 -0
- package/dist/server/pages-media-type.js +24 -0
- package/dist/server/pages-node-compat.d.ts +55 -0
- package/dist/server/pages-node-compat.js +235 -0
- package/dist/server/pages-page-data.d.ts +223 -0
- package/dist/server/pages-page-data.js +484 -0
- package/dist/server/pages-page-handler.d.ts +100 -0
- package/dist/server/pages-page-handler.js +403 -0
- package/dist/server/pages-page-method.d.ts +47 -0
- package/dist/server/pages-page-method.js +17 -0
- package/dist/server/pages-page-response.d.ts +138 -0
- package/dist/server/pages-page-response.js +285 -0
- package/dist/server/pages-readiness.d.ts +36 -0
- package/dist/server/pages-readiness.js +21 -0
- package/dist/server/pages-request-pipeline.d.ts +116 -0
- package/dist/server/pages-request-pipeline.js +311 -0
- package/dist/server/pages-revalidate.d.ts +15 -0
- package/dist/server/pages-revalidate.js +19 -0
- package/dist/server/pages-serializable-props.d.ts +24 -0
- package/dist/server/pages-serializable-props.js +67 -0
- package/dist/server/pregenerated-concrete-paths.d.ts +16 -0
- package/dist/server/pregenerated-concrete-paths.js +61 -0
- package/dist/server/prerender-manifest.d.ts +33 -0
- package/dist/server/prerender-manifest.js +54 -0
- package/dist/server/prerender-route-params.d.ts +23 -0
- package/dist/server/prerender-route-params.js +113 -0
- package/dist/server/prerender-work-unit-setup.d.ts +6 -0
- package/dist/server/prerender-work-unit-setup.js +28 -0
- package/dist/server/prod-server.d.ts +148 -0
- package/dist/server/prod-server.js +1136 -0
- package/dist/server/proxy-trust.d.ts +40 -0
- package/dist/server/proxy-trust.js +68 -0
- package/dist/server/request-log.d.ts +39 -0
- package/dist/server/request-log.js +56 -0
- package/dist/server/request-pipeline.d.ts +187 -0
- package/dist/server/request-pipeline.js +447 -0
- package/dist/server/rsc-stream-hints.d.ts +10 -0
- package/dist/server/rsc-stream-hints.js +41 -0
- package/dist/server/seed-cache.d.ts +29 -0
- package/dist/server/seed-cache.js +125 -0
- package/dist/server/server-action-not-found.d.ts +21 -0
- package/dist/server/server-action-not-found.js +62 -0
- package/dist/server/server-globals.d.ts +4 -0
- package/dist/server/server-globals.js +35 -0
- package/dist/server/skip-cache-proof.d.ts +61 -0
- package/dist/server/skip-cache-proof.js +168 -0
- package/dist/server/socket-error-backstop.d.ts +34 -0
- package/dist/server/socket-error-backstop.js +200 -0
- package/dist/server/static-file-cache.d.ts +56 -0
- package/dist/server/static-file-cache.js +231 -0
- package/dist/server/static-layout-client-reuse-proof.d.ts +15 -0
- package/dist/server/static-layout-client-reuse-proof.js +33 -0
- package/dist/server/streaming-metadata.d.ts +4 -0
- package/dist/server/streaming-metadata.js +8 -0
- package/dist/server/worker-utils.d.ts +7 -0
- package/dist/server/worker-utils.js +99 -0
- package/dist/shims/amp.d.ts +19 -0
- package/dist/shims/amp.js +23 -0
- package/dist/shims/app-router-scroll-state.d.ts +15 -0
- package/dist/shims/app-router-scroll-state.js +61 -0
- package/dist/shims/app-router-scroll.d.ts +29 -0
- package/dist/shims/app-router-scroll.js +141 -0
- package/dist/shims/app.d.ts +42 -0
- package/dist/shims/app.js +48 -0
- package/dist/shims/before-interactive-context.d.ts +40 -0
- package/dist/shims/before-interactive-context.js +8 -0
- package/dist/shims/cache-for-request.d.ts +57 -0
- package/dist/shims/cache-for-request.js +72 -0
- package/dist/shims/cache-handler.d.ts +106 -0
- package/dist/shims/cache-handler.js +176 -0
- package/dist/shims/cache-request-state.d.ts +47 -0
- package/dist/shims/cache-request-state.js +126 -0
- package/dist/shims/cache-runtime.d.ts +83 -0
- package/dist/shims/cache-runtime.js +452 -0
- package/dist/shims/cache.d.ts +145 -0
- package/dist/shims/cache.js +401 -0
- package/dist/shims/cdn-cache.d.ts +125 -0
- package/dist/shims/cdn-cache.js +100 -0
- package/dist/shims/client-hook-error.d.ts +13 -0
- package/dist/shims/client-hook-error.js +17 -0
- package/dist/shims/client-locale.d.ts +14 -0
- package/dist/shims/client-locale.js +11 -0
- package/dist/shims/client-only.d.ts +1 -0
- package/dist/shims/client-only.js +1 -0
- package/dist/shims/compat-router.d.ts +16 -0
- package/dist/shims/compat-router.js +25 -0
- package/dist/shims/config.d.ts +28 -0
- package/dist/shims/config.js +21 -0
- package/dist/shims/constants.d.ts +130 -0
- package/dist/shims/constants.js +167 -0
- package/dist/shims/default-global-error.d.ts +31 -0
- package/dist/shims/default-global-error.js +179 -0
- package/dist/shims/default-not-found.d.ts +11 -0
- package/dist/shims/default-not-found.js +59 -0
- package/dist/shims/document.d.ts +92 -0
- package/dist/shims/document.js +76 -0
- package/dist/shims/dynamic-preload-chunks.d.ts +8 -0
- package/dist/shims/dynamic-preload-chunks.js +79 -0
- package/dist/shims/dynamic.d.ts +35 -0
- package/dist/shims/dynamic.js +204 -0
- package/dist/shims/error-boundary-navigation.d.ts +7 -0
- package/dist/shims/error-boundary-navigation.js +44 -0
- package/dist/shims/error-boundary.d.ts +155 -0
- package/dist/shims/error-boundary.js +342 -0
- package/dist/shims/error.d.ts +31 -0
- package/dist/shims/error.js +123 -0
- package/dist/shims/error.react-server.d.ts +9 -0
- package/dist/shims/error.react-server.js +6 -0
- package/dist/shims/fetch-cache.d.ts +136 -0
- package/dist/shims/fetch-cache.js +766 -0
- package/dist/shims/font-google-base.d.ts +83 -0
- package/dist/shims/font-google-base.js +290 -0
- package/dist/shims/font-google.d.ts +2 -0
- package/dist/shims/font-google.js +2 -0
- package/dist/shims/font-local.d.ts +50 -0
- package/dist/shims/font-local.js +195 -0
- package/dist/shims/font-utils.d.ts +56 -0
- package/dist/shims/font-utils.js +107 -0
- package/dist/shims/form.d.ts +19 -0
- package/dist/shims/form.js +236 -0
- package/dist/shims/hash-scroll.d.ts +10 -0
- package/dist/shims/hash-scroll.js +47 -0
- package/dist/shims/head-state.d.ts +16 -0
- package/dist/shims/head-state.js +43 -0
- package/dist/shims/head.d.ts +73 -0
- package/dist/shims/head.js +340 -0
- package/dist/shims/headers.d.ts +253 -0
- package/dist/shims/headers.js +754 -0
- package/dist/shims/i18n-context.d.ts +22 -0
- package/dist/shims/i18n-context.js +42 -0
- package/dist/shims/i18n-state.d.ts +14 -0
- package/dist/shims/i18n-state.js +38 -0
- package/dist/shims/image-config.d.ts +45 -0
- package/dist/shims/image-config.js +85 -0
- package/dist/shims/image.d.ts +55 -0
- package/dist/shims/image.js +582 -0
- package/dist/shims/internal/als-registry.d.ts +14 -0
- package/dist/shims/internal/als-registry.js +80 -0
- package/dist/shims/internal/api-utils.d.ts +14 -0
- package/dist/shims/internal/api-utils.js +1 -0
- package/dist/shims/internal/app-page-props-cache-key.d.ts +5 -0
- package/dist/shims/internal/app-page-props-cache-key.js +16 -0
- package/dist/shims/internal/app-route-detection.d.ts +39 -0
- package/dist/shims/internal/app-route-detection.js +62 -0
- package/dist/shims/internal/app-router-context.d.ts +31 -0
- package/dist/shims/internal/app-router-context.js +28 -0
- package/dist/shims/internal/cookie-serialize.d.ts +45 -0
- package/dist/shims/internal/cookie-serialize.js +49 -0
- package/dist/shims/internal/cookies.d.ts +2 -0
- package/dist/shims/internal/cookies.js +2 -0
- package/dist/shims/internal/hybrid-client-route-owner.d.ts +31 -0
- package/dist/shims/internal/hybrid-client-route-owner.js +143 -0
- package/dist/shims/internal/interpolate-as.d.ts +25 -0
- package/dist/shims/internal/interpolate-as.js +196 -0
- package/dist/shims/internal/link-status-registry.d.ts +43 -0
- package/dist/shims/internal/link-status-registry.js +42 -0
- package/dist/shims/internal/make-hanging-promise.d.ts +15 -0
- package/dist/shims/internal/make-hanging-promise.js +44 -0
- package/dist/shims/internal/navigation-untracked.d.ts +35 -0
- package/dist/shims/internal/navigation-untracked.js +56 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +54 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js +121 -0
- package/dist/shims/internal/pages-data-target.d.ts +62 -0
- package/dist/shims/internal/pages-data-target.js +98 -0
- package/dist/shims/internal/pages-data-url.d.ts +41 -0
- package/dist/shims/internal/pages-data-url.js +71 -0
- package/dist/shims/internal/pages-router-accessor.d.ts +19 -0
- package/dist/shims/internal/pages-router-accessor.js +13 -0
- package/dist/shims/internal/route-pattern-for-warning.d.ts +27 -0
- package/dist/shims/internal/route-pattern-for-warning.js +40 -0
- package/dist/shims/internal/router-context.d.ts +7 -0
- package/dist/shims/internal/router-context.js +13 -0
- package/dist/shims/internal/utils.d.ts +52 -0
- package/dist/shims/internal/utils.js +27 -0
- package/dist/shims/internal/work-unit-async-storage.d.ts +30 -0
- package/dist/shims/internal/work-unit-async-storage.js +17 -0
- package/dist/shims/layout-segment-context.d.ts +24 -0
- package/dist/shims/layout-segment-context.js +39 -0
- package/dist/shims/legacy-image.d.ts +41 -0
- package/dist/shims/legacy-image.js +49 -0
- package/dist/shims/link-prefetch.d.ts +41 -0
- package/dist/shims/link-prefetch.js +43 -0
- package/dist/shims/link.d.ts +102 -0
- package/dist/shims/link.js +687 -0
- package/dist/shims/metadata.d.ts +285 -0
- package/dist/shims/metadata.js +820 -0
- package/dist/shims/navigation-context-state.d.ts +40 -0
- package/dist/shims/navigation-context-state.js +116 -0
- package/dist/shims/navigation-errors.d.ts +55 -0
- package/dist/shims/navigation-errors.js +110 -0
- package/dist/shims/navigation-server.d.ts +3 -0
- package/dist/shims/navigation-server.js +3 -0
- package/dist/shims/navigation-state.d.ts +25 -0
- package/dist/shims/navigation-state.js +66 -0
- package/dist/shims/navigation.d.ts +286 -0
- package/dist/shims/navigation.js +1206 -0
- package/dist/shims/navigation.react-server.d.ts +14 -0
- package/dist/shims/navigation.react-server.js +32 -0
- package/dist/shims/offline.d.ts +4 -0
- package/dist/shims/offline.js +15 -0
- package/dist/shims/og.d.ts +17 -0
- package/dist/shims/og.js +48 -0
- package/dist/shims/pages-router-runtime.d.ts +12 -0
- package/dist/shims/pages-router-runtime.js +24 -0
- package/dist/shims/ppr-fallback-shell.d.ts +33 -0
- package/dist/shims/ppr-fallback-shell.js +170 -0
- package/dist/shims/readonly-url-search-params.d.ts +13 -0
- package/dist/shims/readonly-url-search-params.js +26 -0
- package/dist/shims/request-context.d.ts +58 -0
- package/dist/shims/request-context.js +45 -0
- package/dist/shims/request-state-types.d.ts +12 -0
- package/dist/shims/request-state-types.js +1 -0
- package/dist/shims/root-params.d.ts +12 -0
- package/dist/shims/root-params.js +30 -0
- package/dist/shims/router-state.d.ts +32 -0
- package/dist/shims/router-state.js +39 -0
- package/dist/shims/router.d.ts +192 -0
- package/dist/shims/router.js +1786 -0
- package/dist/shims/script-nonce-context.d.ts +11 -0
- package/dist/shims/script-nonce-context.js +23 -0
- package/dist/shims/script.d.ts +43 -0
- package/dist/shims/script.js +370 -0
- package/dist/shims/server-only.d.ts +1 -0
- package/dist/shims/server-only.js +1 -0
- package/dist/shims/server.d.ts +323 -0
- package/dist/shims/server.js +729 -0
- package/dist/shims/slot.d.ts +45 -0
- package/dist/shims/slot.js +230 -0
- package/dist/shims/thenable-params.d.ts +11 -0
- package/dist/shims/thenable-params.js +176 -0
- package/dist/shims/unified-request-context.d.ts +68 -0
- package/dist/shims/unified-request-context.js +86 -0
- package/dist/shims/unrecognized-action-error.d.ts +34 -0
- package/dist/shims/unrecognized-action-error.js +39 -0
- package/dist/shims/url-safety.d.ts +34 -0
- package/dist/shims/url-safety.js +70 -0
- package/dist/shims/url-utils.d.ts +51 -0
- package/dist/shims/url-utils.js +156 -0
- package/dist/shims/use-merged-ref.d.ts +6 -0
- package/dist/shims/use-merged-ref.js +38 -0
- package/dist/shims/web-vitals.d.ts +8 -0
- package/dist/shims/web-vitals.js +22 -0
- package/dist/typegen.d.ts +9 -0
- package/dist/typegen.js +228 -0
- package/dist/utils/asset-prefix.d.ts +96 -0
- package/dist/utils/asset-prefix.js +122 -0
- package/dist/utils/base-path.d.ts +31 -0
- package/dist/utils/base-path.js +45 -0
- package/dist/utils/built-asset-url.d.ts +4 -0
- package/dist/utils/built-asset-url.js +11 -0
- package/dist/utils/cache-control-metadata.d.ts +4 -0
- package/dist/utils/cache-control-metadata.js +12 -0
- package/dist/utils/client-build-manifest.d.ts +21 -0
- package/dist/utils/client-build-manifest.js +87 -0
- package/dist/utils/client-entry-manifest.d.ts +11 -0
- package/dist/utils/client-entry-manifest.js +29 -0
- package/dist/utils/client-runtime-metadata.d.ts +45 -0
- package/dist/utils/client-runtime-metadata.js +63 -0
- package/dist/utils/commonjs-loader.d.ts +16 -0
- package/dist/utils/commonjs-loader.js +100 -0
- package/dist/utils/compare.d.ts +4 -0
- package/dist/utils/compare.js +8 -0
- package/dist/utils/deployment-id.d.ts +8 -0
- package/dist/utils/deployment-id.js +22 -0
- package/dist/utils/dev-error-recovery-event.d.ts +4 -0
- package/dist/utils/dev-error-recovery-event.js +4 -0
- package/dist/utils/domain-locale.d.ts +26 -0
- package/dist/utils/domain-locale.js +50 -0
- package/dist/utils/encode-cache-tag.d.ts +30 -0
- package/dist/utils/encode-cache-tag.js +36 -0
- package/dist/utils/error-cause.d.ts +4 -0
- package/dist/utils/error-cause.js +95 -0
- package/dist/utils/has-trailing-comma.d.ts +24 -0
- package/dist/utils/has-trailing-comma.js +62 -0
- package/dist/utils/hash.d.ts +24 -0
- package/dist/utils/hash.js +55 -0
- package/dist/utils/html-limited-bots.d.ts +21 -0
- package/dist/utils/html-limited-bots.js +35 -0
- package/dist/utils/lazy-chunks.d.ts +59 -0
- package/dist/utils/lazy-chunks.js +112 -0
- package/dist/utils/manifest-paths.d.ts +30 -0
- package/dist/utils/manifest-paths.js +66 -0
- package/dist/utils/mdx-scan.d.ts +9 -0
- package/dist/utils/mdx-scan.js +34 -0
- package/dist/utils/navigation-signal.d.ts +4 -0
- package/dist/utils/navigation-signal.js +12 -0
- package/dist/utils/number.d.ts +4 -0
- package/dist/utils/number.js +6 -0
- package/dist/utils/parse-cookie.d.ts +13 -0
- package/dist/utils/parse-cookie.js +52 -0
- package/dist/utils/path.d.ts +22 -0
- package/dist/utils/path.js +30 -0
- package/dist/utils/prerender-output-paths.d.ts +14 -0
- package/dist/utils/prerender-output-paths.js +22 -0
- package/dist/utils/project.d.ts +76 -0
- package/dist/utils/project.js +213 -0
- package/dist/utils/promise.d.ts +4 -0
- package/dist/utils/promise.js +6 -0
- package/dist/utils/public-routes.d.ts +4 -0
- package/dist/utils/public-routes.js +48 -0
- package/dist/utils/query.d.ts +49 -0
- package/dist/utils/query.js +122 -0
- package/dist/utils/record.d.ts +4 -0
- package/dist/utils/record.js +6 -0
- package/dist/utils/regex.d.ts +4 -0
- package/dist/utils/regex.js +6 -0
- package/dist/utils/safe-json-file.d.ts +17 -0
- package/dist/utils/safe-json-file.js +23 -0
- package/dist/utils/sorted-array.d.ts +8 -0
- package/dist/utils/sorted-array.js +20 -0
- package/dist/utils/text-stream.d.ts +28 -0
- package/dist/utils/text-stream.js +64 -0
- package/dist/utils/vinext-root.d.ts +23 -0
- package/dist/utils/vinext-root.js +29 -0
- package/dist/utils/virtual-module.d.ts +5 -0
- package/dist/utils/virtual-module.js +0 -0
- package/dist/utils/vite-version.d.ts +21 -0
- package/dist/utils/vite-version.js +42 -0
- package/package.json +145 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Plugin } from "vite";
|
|
2
|
+
import MagicString from "magic-string";
|
|
3
|
+
|
|
4
|
+
//#region src/plugins/import-meta-url.d.ts
|
|
5
|
+
type ImportMetaUrlEnvironment = "client" | "server";
|
|
6
|
+
type RewriteResult = {
|
|
7
|
+
code: string;
|
|
8
|
+
map: ReturnType<MagicString["generateMap"]>;
|
|
9
|
+
};
|
|
10
|
+
declare function createImportMetaUrlPlugin(options: {
|
|
11
|
+
getRoot: () => string | undefined;
|
|
12
|
+
}): Plugin;
|
|
13
|
+
declare function rewriteImportMetaUrl(code: string, id: string, root: string, environment: ImportMetaUrlEnvironment): RewriteResult | null;
|
|
14
|
+
declare function rewriteServerCjsGlobals(code: string, id: string, root: string): RewriteResult | null;
|
|
15
|
+
//#endregion
|
|
16
|
+
export { createImportMetaUrlPlugin, rewriteImportMetaUrl, rewriteServerCjsGlobals };
|
|
@@ -0,0 +1,353 @@
|
|
|
1
|
+
import { VIRTUAL_MODULE_ID_RE } from "../utils/virtual-module.js";
|
|
2
|
+
import { collectBindingNames, forEachAstChild, hasRange, isAstRecord, isIdentifierNamed, nodeArray } from "./ast-utils.js";
|
|
3
|
+
import { tryRealpathSync } from "../build/ssr-manifest.js";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import { normalizePath, parseAst } from "vite";
|
|
6
|
+
import { pathToFileURL } from "node:url";
|
|
7
|
+
import MagicString from "magic-string";
|
|
8
|
+
//#region src/plugins/import-meta-url.ts
|
|
9
|
+
const TRANSFORMABLE_SCRIPT_EXTENSIONS = new Set([
|
|
10
|
+
".cjs",
|
|
11
|
+
".cts",
|
|
12
|
+
".js",
|
|
13
|
+
".jsx",
|
|
14
|
+
".mjs",
|
|
15
|
+
".mts",
|
|
16
|
+
".ts",
|
|
17
|
+
".tsx"
|
|
18
|
+
]);
|
|
19
|
+
function createImportMetaUrlPlugin(options) {
|
|
20
|
+
let rootPaths;
|
|
21
|
+
let outputDirs = [];
|
|
22
|
+
function getRootPaths() {
|
|
23
|
+
const root = options.getRoot();
|
|
24
|
+
if (!root) return rootPaths;
|
|
25
|
+
if (!rootPaths || rootPaths.root !== root) rootPaths = createRootPaths(root, { outputDirs });
|
|
26
|
+
return rootPaths;
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
name: "vinext:import-meta-url",
|
|
30
|
+
enforce: "post",
|
|
31
|
+
configResolved(config) {
|
|
32
|
+
const root = options.getRoot() ?? config.root;
|
|
33
|
+
outputDirs = [config.build.outDir];
|
|
34
|
+
rootPaths = createRootPaths(root, { outputDirs });
|
|
35
|
+
},
|
|
36
|
+
transform: {
|
|
37
|
+
filter: {
|
|
38
|
+
id: {
|
|
39
|
+
include: /\.(?:[cm]?[jt]s|[jt]sx)(?:\?.*)?$/,
|
|
40
|
+
exclude: [/[\\/]node_modules[\\/]/, VIRTUAL_MODULE_ID_RE]
|
|
41
|
+
},
|
|
42
|
+
code: /import\.meta(?:\.|\?\.)url|__filename|__dirname/
|
|
43
|
+
},
|
|
44
|
+
handler(code, id) {
|
|
45
|
+
const paths = getRootPaths();
|
|
46
|
+
if (!paths) return null;
|
|
47
|
+
const canonicalId = transformableModuleCanonicalId(cleanModuleId(id), paths);
|
|
48
|
+
if (!canonicalId) return null;
|
|
49
|
+
const rewritten = rewriteCanonicalSourceIdentity(code, canonicalId, paths, this.environment?.name === "client" ? "client" : "server");
|
|
50
|
+
if (!rewritten) return null;
|
|
51
|
+
return {
|
|
52
|
+
code: rewritten.code,
|
|
53
|
+
map: rewritten.map
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function rewriteImportMetaUrl(code, id, root, environment) {
|
|
60
|
+
if (!mayContainImportMetaUrl(code)) return null;
|
|
61
|
+
return rewriteCanonicalSourceIdentity(code, canonicalizePath(id), createRootPaths(root), environment);
|
|
62
|
+
}
|
|
63
|
+
function rewriteServerCjsGlobals(code, id, root) {
|
|
64
|
+
if (!mayContainServerCjsGlobal(code)) return null;
|
|
65
|
+
const rootPaths = createRootPaths(root);
|
|
66
|
+
const canonicalId = transformableModuleCanonicalId(id, rootPaths);
|
|
67
|
+
if (!canonicalId) return null;
|
|
68
|
+
return rewriteCanonicalSourceIdentity(code, canonicalId, rootPaths, "server");
|
|
69
|
+
}
|
|
70
|
+
function rewriteCanonicalSourceIdentity(code, canonicalId, rootPaths, environment) {
|
|
71
|
+
let ast;
|
|
72
|
+
try {
|
|
73
|
+
ast = parseAst(code);
|
|
74
|
+
} catch {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
const output = new MagicString(code);
|
|
78
|
+
let changed = false;
|
|
79
|
+
if (mayContainImportMetaUrl(code)) {
|
|
80
|
+
const importMetaRanges = collectImportMetaUrlRanges(ast);
|
|
81
|
+
if (importMetaRanges.length > 0) {
|
|
82
|
+
const replacement = JSON.stringify(importMetaUrlValue(canonicalId, rootPaths, environment));
|
|
83
|
+
for (const range of importMetaRanges) {
|
|
84
|
+
output.overwrite(range.start, range.end, replacement);
|
|
85
|
+
changed = true;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
if (environment === "server" && mayContainServerCjsGlobal(code)) {
|
|
90
|
+
const injected = injectServerCjsGlobals(ast, canonicalId);
|
|
91
|
+
if (injected) {
|
|
92
|
+
output.appendLeft(findDirectivePrologueEnd(ast), `\n${injected}`);
|
|
93
|
+
changed = true;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
if (!changed) return null;
|
|
97
|
+
return {
|
|
98
|
+
code: output.toString(),
|
|
99
|
+
map: output.generateMap({ hires: "boundary" })
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
function cleanModuleId(id) {
|
|
103
|
+
return id.split("?", 1)[0];
|
|
104
|
+
}
|
|
105
|
+
function createRootPaths(root, options = {}) {
|
|
106
|
+
const canonicalRoot = canonicalizePath(root);
|
|
107
|
+
const normalizedRoot = normalizePath(canonicalRoot);
|
|
108
|
+
return {
|
|
109
|
+
root,
|
|
110
|
+
canonicalRoot,
|
|
111
|
+
normalizedRoot,
|
|
112
|
+
excludedRelativePrefixes: excludedRelativePrefixes(canonicalRoot, normalizedRoot, options)
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
function transformableModuleCanonicalId(id, rootPaths) {
|
|
116
|
+
if (!id || id.startsWith("\0")) return null;
|
|
117
|
+
if (!path.isAbsolute(id)) return null;
|
|
118
|
+
const normalizedInputId = normalizePath(id);
|
|
119
|
+
if (normalizedInputId.includes("/node_modules/")) return null;
|
|
120
|
+
if (!TRANSFORMABLE_SCRIPT_EXTENSIONS.has(path.extname(normalizedInputId))) return null;
|
|
121
|
+
const canonicalId = canonicalizePath(id);
|
|
122
|
+
if (!isPathWithin(normalizePath(canonicalId), rootPaths.normalizedRoot)) return null;
|
|
123
|
+
if (isExcludedRelativePath(normalizePath(path.relative(rootPaths.canonicalRoot, canonicalId)), rootPaths.excludedRelativePrefixes)) return null;
|
|
124
|
+
return canonicalId;
|
|
125
|
+
}
|
|
126
|
+
function mayContainImportMetaUrl(code) {
|
|
127
|
+
return code.includes("import.meta.url") || code.includes("import.meta?.url");
|
|
128
|
+
}
|
|
129
|
+
function mayContainServerCjsGlobal(code) {
|
|
130
|
+
return code.includes("__filename") || code.includes("__dirname");
|
|
131
|
+
}
|
|
132
|
+
function excludedRelativePrefixes(canonicalRoot, normalizedRoot, options) {
|
|
133
|
+
const prefixes = new Set([
|
|
134
|
+
".next",
|
|
135
|
+
".vinext",
|
|
136
|
+
".vinext-local-package",
|
|
137
|
+
"dist",
|
|
138
|
+
"out"
|
|
139
|
+
]);
|
|
140
|
+
for (const outputDir of options.outputDirs ?? []) {
|
|
141
|
+
const canonicalOutputDir = canonicalizePath(path.isAbsolute(outputDir) ? outputDir : path.resolve(canonicalRoot, outputDir));
|
|
142
|
+
if (!isPathWithin(normalizePath(canonicalOutputDir), normalizedRoot)) continue;
|
|
143
|
+
const relativePath = normalizePath(path.relative(canonicalRoot, canonicalOutputDir));
|
|
144
|
+
if (relativePath && relativePath !== ".") prefixes.add(relativePath);
|
|
145
|
+
}
|
|
146
|
+
return [...prefixes];
|
|
147
|
+
}
|
|
148
|
+
function isExcludedRelativePath(relativePath, prefixes) {
|
|
149
|
+
return prefixes.some((prefix) => relativePath === prefix || relativePath.startsWith(`${prefix}/`));
|
|
150
|
+
}
|
|
151
|
+
function isPathWithin(candidate, root) {
|
|
152
|
+
return candidate === root || candidate.startsWith(root.endsWith("/") ? root : `${root}/`);
|
|
153
|
+
}
|
|
154
|
+
function importMetaUrlValue(canonicalId, rootPaths, environment) {
|
|
155
|
+
if (environment === "client") return `file:///ROOT/${normalizePath(path.relative(rootPaths.canonicalRoot, canonicalId))}`;
|
|
156
|
+
return pathToFileURL(canonicalId).href;
|
|
157
|
+
}
|
|
158
|
+
function canonicalizePath(value) {
|
|
159
|
+
return tryRealpathSync(value) ?? path.resolve(value);
|
|
160
|
+
}
|
|
161
|
+
function collectImportMetaUrlRanges(ast) {
|
|
162
|
+
const ranges = [];
|
|
163
|
+
function visit(value) {
|
|
164
|
+
if (!isAstRecord(value)) return;
|
|
165
|
+
if (isImportMetaUrlNode(value)) {
|
|
166
|
+
ranges.push({
|
|
167
|
+
start: value.start,
|
|
168
|
+
end: value.end
|
|
169
|
+
});
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
if (isChainExpressionWrappingImportMetaUrl(value)) {
|
|
173
|
+
ranges.push({
|
|
174
|
+
start: value.start,
|
|
175
|
+
end: value.end
|
|
176
|
+
});
|
|
177
|
+
return;
|
|
178
|
+
}
|
|
179
|
+
if (isNewUrlExpression(value)) {
|
|
180
|
+
const args = nodeArray(value.arguments);
|
|
181
|
+
for (let index = 0; index < args.length; index += 1) {
|
|
182
|
+
if (index === 1 && isImportMetaUrlOrChainedNode(args[index])) continue;
|
|
183
|
+
visit(args[index]);
|
|
184
|
+
}
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
forEachAstChild(value, visit);
|
|
188
|
+
}
|
|
189
|
+
visit(ast);
|
|
190
|
+
return ranges;
|
|
191
|
+
}
|
|
192
|
+
const CJS_GLOBALS = ["__filename", "__dirname"];
|
|
193
|
+
function isCjsGlobalName(name) {
|
|
194
|
+
return name === "__filename" || name === "__dirname";
|
|
195
|
+
}
|
|
196
|
+
function injectServerCjsGlobals(ast, canonicalId) {
|
|
197
|
+
const analysis = analyzeServerCjsGlobals(ast);
|
|
198
|
+
const values = {
|
|
199
|
+
__filename: canonicalId,
|
|
200
|
+
__dirname: path.dirname(canonicalId)
|
|
201
|
+
};
|
|
202
|
+
const parts = CJS_GLOBALS.filter((name) => analysis.reads.has(name) && !analysis.moduleBindings.has(name)).map((name) => `var ${name} = ${JSON.stringify(values[name])};`);
|
|
203
|
+
return parts.length ? parts.join("") : null;
|
|
204
|
+
}
|
|
205
|
+
function analyzeServerCjsGlobals(ast) {
|
|
206
|
+
const reads = /* @__PURE__ */ new Set();
|
|
207
|
+
const moduleBindings = /* @__PURE__ */ new Set();
|
|
208
|
+
function recordBinding(pattern) {
|
|
209
|
+
const names = /* @__PURE__ */ new Set();
|
|
210
|
+
collectBindingNames(pattern, names);
|
|
211
|
+
for (const name of names) if (isCjsGlobalName(name)) moduleBindings.add(name);
|
|
212
|
+
}
|
|
213
|
+
function recordDirectTopLevelBindings(statement) {
|
|
214
|
+
switch (statement.type) {
|
|
215
|
+
case "ImportDeclaration":
|
|
216
|
+
for (const specifier of nodeArray(statement.specifiers)) {
|
|
217
|
+
if (!isAstRecord(specifier)) continue;
|
|
218
|
+
recordBinding(specifier.local);
|
|
219
|
+
}
|
|
220
|
+
return;
|
|
221
|
+
case "VariableDeclaration":
|
|
222
|
+
if (statement.kind === "var") return;
|
|
223
|
+
for (const declarator of nodeArray(statement.declarations)) {
|
|
224
|
+
if (!isAstRecord(declarator) || declarator.type !== "VariableDeclarator") continue;
|
|
225
|
+
recordBinding(declarator.id);
|
|
226
|
+
}
|
|
227
|
+
return;
|
|
228
|
+
case "FunctionDeclaration":
|
|
229
|
+
case "ClassDeclaration":
|
|
230
|
+
recordBinding(statement.id);
|
|
231
|
+
return;
|
|
232
|
+
case "ExportNamedDeclaration":
|
|
233
|
+
case "ExportDefaultDeclaration":
|
|
234
|
+
if (isAstRecord(statement.declaration)) recordDirectTopLevelBindings(statement.declaration);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
function recordModuleScopedVarBindings(node) {
|
|
239
|
+
if (!isAstRecord(node)) return;
|
|
240
|
+
switch (node.type) {
|
|
241
|
+
case "Program":
|
|
242
|
+
for (const statement of nodeArray(node.body)) {
|
|
243
|
+
if (!isAstRecord(statement)) continue;
|
|
244
|
+
recordDirectTopLevelBindings(statement);
|
|
245
|
+
recordModuleScopedVarBindings(statement);
|
|
246
|
+
}
|
|
247
|
+
return;
|
|
248
|
+
case "VariableDeclaration":
|
|
249
|
+
if (node.kind !== "var") return;
|
|
250
|
+
for (const declarator of nodeArray(node.declarations)) {
|
|
251
|
+
if (!isAstRecord(declarator) || declarator.type !== "VariableDeclarator") continue;
|
|
252
|
+
recordBinding(declarator.id);
|
|
253
|
+
}
|
|
254
|
+
return;
|
|
255
|
+
case "FunctionDeclaration":
|
|
256
|
+
case "FunctionExpression":
|
|
257
|
+
case "ArrowFunctionExpression":
|
|
258
|
+
case "ClassDeclaration":
|
|
259
|
+
case "ClassExpression": return;
|
|
260
|
+
default: for (const child of moduleScopeChildren(node)) recordModuleScopedVarBindings(child);
|
|
261
|
+
}
|
|
262
|
+
}
|
|
263
|
+
function moduleScopeChildren(node) {
|
|
264
|
+
switch (node.type) {
|
|
265
|
+
case "BlockStatement": return nodeArray(node.body);
|
|
266
|
+
case "IfStatement": return [node.consequent, node.alternate];
|
|
267
|
+
case "SwitchStatement": return nodeArray(node.cases);
|
|
268
|
+
case "SwitchCase": return nodeArray(node.consequent);
|
|
269
|
+
case "TryStatement": return [
|
|
270
|
+
node.block,
|
|
271
|
+
node.handler,
|
|
272
|
+
node.finalizer
|
|
273
|
+
];
|
|
274
|
+
case "CatchClause": return [node.body];
|
|
275
|
+
case "LabeledStatement": return [node.body];
|
|
276
|
+
case "ForStatement": return [node.init, node.body];
|
|
277
|
+
case "ForInStatement":
|
|
278
|
+
case "ForOfStatement": return [node.left, node.body];
|
|
279
|
+
case "WhileStatement":
|
|
280
|
+
case "DoWhileStatement":
|
|
281
|
+
case "WithStatement": return [node.body];
|
|
282
|
+
case "ExportNamedDeclaration":
|
|
283
|
+
case "ExportDefaultDeclaration": return [node.declaration];
|
|
284
|
+
default: return [];
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
function recordReads(value) {
|
|
288
|
+
if (!isAstRecord(value)) return;
|
|
289
|
+
switch (value.type) {
|
|
290
|
+
case "Identifier":
|
|
291
|
+
if (isCjsGlobalName(value.name)) reads.add(value.name);
|
|
292
|
+
return;
|
|
293
|
+
case "MemberExpression":
|
|
294
|
+
recordReads(value.object);
|
|
295
|
+
if (value.computed) recordReads(value.property);
|
|
296
|
+
return;
|
|
297
|
+
case "Property":
|
|
298
|
+
if (value.computed) recordReads(value.key);
|
|
299
|
+
recordReads(value.value);
|
|
300
|
+
return;
|
|
301
|
+
case "MethodDefinition":
|
|
302
|
+
case "PropertyDefinition":
|
|
303
|
+
if (value.computed) recordReads(value.key);
|
|
304
|
+
recordReads(value.value);
|
|
305
|
+
return;
|
|
306
|
+
case "ImportDeclaration": return;
|
|
307
|
+
case "ExportAllDeclaration": return;
|
|
308
|
+
case "ExportNamedDeclaration":
|
|
309
|
+
if (isAstRecord(value.declaration)) recordReads(value.declaration);
|
|
310
|
+
else if (!value.source) {
|
|
311
|
+
for (const specifier of nodeArray(value.specifiers)) if (isAstRecord(specifier)) recordReads(specifier.local);
|
|
312
|
+
}
|
|
313
|
+
return;
|
|
314
|
+
default: forEachAstChild(value, recordReads);
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
if (isAstRecord(ast) && ast.type === "Program") recordModuleScopedVarBindings(ast);
|
|
318
|
+
recordReads(ast);
|
|
319
|
+
return {
|
|
320
|
+
reads,
|
|
321
|
+
moduleBindings
|
|
322
|
+
};
|
|
323
|
+
}
|
|
324
|
+
function isImportMetaNode(value) {
|
|
325
|
+
return isAstRecord(value) && value.type === "MetaProperty" && isIdentifierNamed(value.meta, "import") && isIdentifierNamed(value.property, "meta");
|
|
326
|
+
}
|
|
327
|
+
function isImportMetaUrlNode(value) {
|
|
328
|
+
return isAstRecord(value) && value.type === "MemberExpression" && hasRange(value) && isImportMetaNode(value.object) && isIdentifierNamed(value.property, "url");
|
|
329
|
+
}
|
|
330
|
+
function isImportMetaUrlOrChainedNode(value) {
|
|
331
|
+
if (isImportMetaUrlNode(value)) return true;
|
|
332
|
+
return isAstRecord(value) && value.type === "ChainExpression" && isImportMetaUrlNode(value.expression);
|
|
333
|
+
}
|
|
334
|
+
function isChainExpressionWrappingImportMetaUrl(value) {
|
|
335
|
+
return isAstRecord(value) && value.type === "ChainExpression" && hasRange(value) && isImportMetaUrlNode(value.expression);
|
|
336
|
+
}
|
|
337
|
+
function isNewUrlExpression(value) {
|
|
338
|
+
return value.type === "NewExpression" && isIdentifierNamed(value.callee, "URL");
|
|
339
|
+
}
|
|
340
|
+
function findDirectivePrologueEnd(ast) {
|
|
341
|
+
if (!isAstRecord(ast) || ast.type !== "Program") return 0;
|
|
342
|
+
let end = 0;
|
|
343
|
+
const hashbang = ast.hashbang;
|
|
344
|
+
const hashbangEnd = typeof hashbang === "object" && hashbang !== null ? Reflect.get(hashbang, "end") : null;
|
|
345
|
+
if (typeof hashbangEnd === "number") end = hashbangEnd;
|
|
346
|
+
for (const statement of nodeArray(ast.body)) {
|
|
347
|
+
if (!isAstRecord(statement) || statement.type !== "ExpressionStatement" || !isAstRecord(statement.expression) || statement.expression.type !== "Literal" || typeof statement.expression.value !== "string" || typeof statement.end !== "number") break;
|
|
348
|
+
end = statement.end;
|
|
349
|
+
}
|
|
350
|
+
return end;
|
|
351
|
+
}
|
|
352
|
+
//#endregion
|
|
353
|
+
export { createImportMetaUrlPlugin, rewriteImportMetaUrl, rewriteServerCjsGlobals };
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Plugin } from "vite";
|
|
2
|
+
|
|
3
|
+
//#region src/plugins/instrumentation-client.d.ts
|
|
4
|
+
declare function createInstrumentationClientTransformPlugin(getInstrumentationClientPath: () => string | null): Plugin;
|
|
5
|
+
//#endregion
|
|
6
|
+
export { createInstrumentationClientTransformPlugin };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { normalizePath, parseAst } from "vite";
|
|
2
|
+
import MagicString from "magic-string";
|
|
3
|
+
//#region src/plugins/instrumentation-client.ts
|
|
4
|
+
function createInstrumentationClientTransformPlugin(getInstrumentationClientPath) {
|
|
5
|
+
return {
|
|
6
|
+
name: "vinext:instrumentation-client",
|
|
7
|
+
apply: "serve",
|
|
8
|
+
transform(code, id) {
|
|
9
|
+
const instrumentationClientPath = getInstrumentationClientPath();
|
|
10
|
+
if (!instrumentationClientPath) return null;
|
|
11
|
+
if (normalizePath(id.split("?", 1)[0]) !== instrumentationClientPath) return null;
|
|
12
|
+
if (code.includes("__vinextInstrumentationClientStart")) return null;
|
|
13
|
+
const ast = parseAst(code);
|
|
14
|
+
let insertPos = 0;
|
|
15
|
+
for (const node of ast.body) if (node.type === "ImportDeclaration") insertPos = node.end;
|
|
16
|
+
const s = new MagicString(code);
|
|
17
|
+
s.appendLeft(insertPos, "\nconst __vinextInstrumentationClientStart = performance.now();\n");
|
|
18
|
+
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");
|
|
19
|
+
return {
|
|
20
|
+
code: s.toString(),
|
|
21
|
+
map: s.generateMap({ hires: true })
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { createInstrumentationClientTransformPlugin };
|
|
@@ -0,0 +1,5 @@
|
|
|
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 };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { stripViteModuleQuery } from "../utils/path.js";
|
|
2
|
+
import { createMiddlewareMissingExportError } from "../server/middleware-runtime.js";
|
|
3
|
+
import { parseAst } from "vite";
|
|
4
|
+
//#region src/plugins/middleware-export-validation.ts
|
|
5
|
+
function parserLanguage(id) {
|
|
6
|
+
const cleanId = stripViteModuleQuery(id).toLowerCase();
|
|
7
|
+
if (cleanId.endsWith(".tsx")) return "tsx";
|
|
8
|
+
if (cleanId.endsWith(".ts") || cleanId.endsWith(".mts") || cleanId.endsWith(".cts")) return "ts";
|
|
9
|
+
return "jsx";
|
|
10
|
+
}
|
|
11
|
+
function astName(value) {
|
|
12
|
+
if (!value) return null;
|
|
13
|
+
if (typeof value.name === "string") return value.name;
|
|
14
|
+
if (typeof value.value === "string") return value.value;
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
function hasValidMiddlewareModuleExport(source, id, isProxy) {
|
|
18
|
+
const ast = parseAst(source, { lang: parserLanguage(id) });
|
|
19
|
+
const expectedExport = isProxy ? "proxy" : "middleware";
|
|
20
|
+
for (const statement of ast.body) {
|
|
21
|
+
if (statement.type === "ExportDefaultDeclaration") return true;
|
|
22
|
+
if (statement.type !== "ExportNamedDeclaration") continue;
|
|
23
|
+
const declaration = statement.declaration;
|
|
24
|
+
if (declaration?.type === "FunctionDeclaration" && astName(declaration.id) === expectedExport) return true;
|
|
25
|
+
if (declaration?.type === "VariableDeclaration") {
|
|
26
|
+
for (const declarator of declaration.declarations ?? []) if (astName(declarator.id) === expectedExport) return true;
|
|
27
|
+
}
|
|
28
|
+
for (const specifier of statement.specifiers ?? []) if (astName(specifier.exported ?? specifier.local) === expectedExport) return true;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
function validateMiddlewareModuleExports(source, id, filePath, isProxy) {
|
|
33
|
+
if (!hasValidMiddlewareModuleExport(source, id, isProxy)) throw createMiddlewareMissingExportError(filePath, isProxy);
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { hasValidMiddlewareModuleExport, validateMiddlewareModuleExports };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Plugin } from "vite";
|
|
2
|
+
|
|
3
|
+
//#region src/plugins/middleware-server-only.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Allow `import 'server-only'` from middleware (and any module reachable
|
|
6
|
+
* from middleware) in the SSR environment.
|
|
7
|
+
*
|
|
8
|
+
* Background: middleware runs server-side, so importing `server-only` is
|
|
9
|
+
* semantically correct. However, vinext bundles middleware into the SSR
|
|
10
|
+
* environment (via `virtual:vinext-server-entry`), and @vitejs/plugin-rsc's
|
|
11
|
+
* `rsc:validate-imports` plugin treats any non-RSC environment as a "client"
|
|
12
|
+
* build, rejecting `server-only` imports with:
|
|
13
|
+
*
|
|
14
|
+
* 'server-only' cannot be imported in client build ('ssr' environment)
|
|
15
|
+
*
|
|
16
|
+
* Next.js solves this with webpack `issuerLayer` rules: middleware (and
|
|
17
|
+
* `instrumentation`) sit in the `neutralTarget` layer where `server-only`
|
|
18
|
+
* is aliased to a no-op while `client-only` still errors. See
|
|
19
|
+
* packages/next/src/build/webpack-config.ts ("Alias server-only and
|
|
20
|
+
* client-only to proper exports based on bundling layers")
|
|
21
|
+
*
|
|
22
|
+
* Vite has no per-layer aliasing within a single environment, so we mirror
|
|
23
|
+
* the behavior with import-chain taint tracking:
|
|
24
|
+
*
|
|
25
|
+
* 1. Seed a `tainted` set with the middleware entry path (and its
|
|
26
|
+
* canonical realpath).
|
|
27
|
+
* 2. For every resolveId call from a tainted importer, resolve the import
|
|
28
|
+
* via `this.resolve(..., { skipSelf: true })` and add the resolved id
|
|
29
|
+
* to the tainted set. This propagates the taint along the import graph
|
|
30
|
+
* synchronously, before plugin-rsc's `order: "pre"` validate-imports
|
|
31
|
+
* handler sees the next `server-only` request.
|
|
32
|
+
* 3. When a tainted module imports `server-only` in a non-RSC environment,
|
|
33
|
+
* short-circuit to the no-op shim path so plugin-rsc's filter (which
|
|
34
|
+
* matches the bare `^server-only$` specifier) never fires for that
|
|
35
|
+
* import.
|
|
36
|
+
*
|
|
37
|
+
* The taint set is scoped to the middleware chain only — `server-only`
|
|
38
|
+
* imports from anywhere else (including client component code traversing
|
|
39
|
+
* through the SSR environment for `react-dom/server.edge` rendering) still
|
|
40
|
+
* hit the rsc:validate-imports rejection, preserving the original safety
|
|
41
|
+
* net for accidental client-side `server-only` leakage.
|
|
42
|
+
*
|
|
43
|
+
* Ported from Next.js handling of `WEBPACK_LAYERS.middleware` /
|
|
44
|
+
* `WEBPACK_LAYERS.GROUP.neutralTarget`:
|
|
45
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/build/webpack-config.ts
|
|
46
|
+
*/
|
|
47
|
+
declare function createMiddlewareServerOnlyPlugin(options: {
|
|
48
|
+
getMiddlewarePath: () => string | null;
|
|
49
|
+
getCanonicalMiddlewarePath: () => string | null;
|
|
50
|
+
serverOnlyShimPath: string;
|
|
51
|
+
}): Plugin;
|
|
52
|
+
//#endregion
|
|
53
|
+
export { createMiddlewareServerOnlyPlugin };
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { normalizePathSeparators } from "../utils/path.js";
|
|
2
|
+
//#region src/plugins/middleware-server-only.ts
|
|
3
|
+
/**
|
|
4
|
+
* Allow `import 'server-only'` from middleware (and any module reachable
|
|
5
|
+
* from middleware) in the SSR environment.
|
|
6
|
+
*
|
|
7
|
+
* Background: middleware runs server-side, so importing `server-only` is
|
|
8
|
+
* semantically correct. However, vinext bundles middleware into the SSR
|
|
9
|
+
* environment (via `virtual:vinext-server-entry`), and @vitejs/plugin-rsc's
|
|
10
|
+
* `rsc:validate-imports` plugin treats any non-RSC environment as a "client"
|
|
11
|
+
* build, rejecting `server-only` imports with:
|
|
12
|
+
*
|
|
13
|
+
* 'server-only' cannot be imported in client build ('ssr' environment)
|
|
14
|
+
*
|
|
15
|
+
* Next.js solves this with webpack `issuerLayer` rules: middleware (and
|
|
16
|
+
* `instrumentation`) sit in the `neutralTarget` layer where `server-only`
|
|
17
|
+
* is aliased to a no-op while `client-only` still errors. See
|
|
18
|
+
* packages/next/src/build/webpack-config.ts ("Alias server-only and
|
|
19
|
+
* client-only to proper exports based on bundling layers")
|
|
20
|
+
*
|
|
21
|
+
* Vite has no per-layer aliasing within a single environment, so we mirror
|
|
22
|
+
* the behavior with import-chain taint tracking:
|
|
23
|
+
*
|
|
24
|
+
* 1. Seed a `tainted` set with the middleware entry path (and its
|
|
25
|
+
* canonical realpath).
|
|
26
|
+
* 2. For every resolveId call from a tainted importer, resolve the import
|
|
27
|
+
* via `this.resolve(..., { skipSelf: true })` and add the resolved id
|
|
28
|
+
* to the tainted set. This propagates the taint along the import graph
|
|
29
|
+
* synchronously, before plugin-rsc's `order: "pre"` validate-imports
|
|
30
|
+
* handler sees the next `server-only` request.
|
|
31
|
+
* 3. When a tainted module imports `server-only` in a non-RSC environment,
|
|
32
|
+
* short-circuit to the no-op shim path so plugin-rsc's filter (which
|
|
33
|
+
* matches the bare `^server-only$` specifier) never fires for that
|
|
34
|
+
* import.
|
|
35
|
+
*
|
|
36
|
+
* The taint set is scoped to the middleware chain only — `server-only`
|
|
37
|
+
* imports from anywhere else (including client component code traversing
|
|
38
|
+
* through the SSR environment for `react-dom/server.edge` rendering) still
|
|
39
|
+
* hit the rsc:validate-imports rejection, preserving the original safety
|
|
40
|
+
* net for accidental client-side `server-only` leakage.
|
|
41
|
+
*
|
|
42
|
+
* Ported from Next.js handling of `WEBPACK_LAYERS.middleware` /
|
|
43
|
+
* `WEBPACK_LAYERS.GROUP.neutralTarget`:
|
|
44
|
+
* https://github.com/vercel/next.js/blob/canary/packages/next/src/build/webpack-config.ts
|
|
45
|
+
*/
|
|
46
|
+
function createMiddlewareServerOnlyPlugin(options) {
|
|
47
|
+
const tainted = /* @__PURE__ */ new Set();
|
|
48
|
+
function canonicalizeId(id) {
|
|
49
|
+
const queryIndex = id.indexOf("?");
|
|
50
|
+
return normalizePathSeparators(queryIndex === -1 ? id : id.slice(0, queryIndex));
|
|
51
|
+
}
|
|
52
|
+
function isTainted(id) {
|
|
53
|
+
if (!id) return false;
|
|
54
|
+
return tainted.has(canonicalizeId(id));
|
|
55
|
+
}
|
|
56
|
+
function addTainted(id) {
|
|
57
|
+
tainted.add(canonicalizeId(id));
|
|
58
|
+
}
|
|
59
|
+
return {
|
|
60
|
+
name: "vinext:middleware-server-only",
|
|
61
|
+
// @vitejs/plugin-rsc's `rsc:validate-imports` (which is a normal-priority
|
|
62
|
+
enforce: "pre",
|
|
63
|
+
buildStart() {
|
|
64
|
+
tainted.clear();
|
|
65
|
+
const middlewarePath = options.getMiddlewarePath();
|
|
66
|
+
if (middlewarePath) addTainted(middlewarePath);
|
|
67
|
+
const canonical = options.getCanonicalMiddlewarePath();
|
|
68
|
+
if (canonical) addTainted(canonical);
|
|
69
|
+
},
|
|
70
|
+
resolveId: {
|
|
71
|
+
order: "pre",
|
|
72
|
+
async handler(id, importer, opts) {
|
|
73
|
+
if (this.environment?.name === "rsc") return;
|
|
74
|
+
if (!importer) return;
|
|
75
|
+
if (!isTainted(importer)) return;
|
|
76
|
+
if (id === "server-only") return {
|
|
77
|
+
id: options.serverOnlyShimPath,
|
|
78
|
+
moduleSideEffects: false
|
|
79
|
+
};
|
|
80
|
+
const resolved = await this.resolve(id, importer, {
|
|
81
|
+
...opts,
|
|
82
|
+
skipSelf: true
|
|
83
|
+
});
|
|
84
|
+
if (resolved && !resolved.external) addTainted(resolved.id);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//#endregion
|
|
90
|
+
export { createMiddlewareServerOnlyPlugin };
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Alias } from "vite";
|
|
2
|
+
|
|
3
|
+
//#region src/plugins/og-asset-ownership.d.ts
|
|
4
|
+
type OgAssetModuleBoundary = {
|
|
5
|
+
assetRoot: string;
|
|
6
|
+
moduleDir: string;
|
|
7
|
+
};
|
|
8
|
+
declare class OgAssetOwnership {
|
|
9
|
+
private projectRoot;
|
|
10
|
+
private readonly linkedPackageRoots;
|
|
11
|
+
private readonly dependencyPackageNames;
|
|
12
|
+
private readonly stringAliasesByFirstCharacter;
|
|
13
|
+
private regularExpressionAliases;
|
|
14
|
+
private configuredAliases;
|
|
15
|
+
configure(projectRoot: string, aliases: readonly Alias[]): void;
|
|
16
|
+
reset(): void;
|
|
17
|
+
shouldTrackImport(source: string): boolean;
|
|
18
|
+
recordResolvedImport(source: string, resolvedId: string): Promise<void>;
|
|
19
|
+
resolveModuleBoundary(moduleId: string): Promise<OgAssetModuleBoundary | null>;
|
|
20
|
+
resolveContainedAsset(assetRoot: string, assetPath: string): Promise<string | null>;
|
|
21
|
+
private findAlias;
|
|
22
|
+
private getExpectedPackageName;
|
|
23
|
+
private resolveAliasPackageRoot;
|
|
24
|
+
private resolveConfiguredAliasRoot;
|
|
25
|
+
}
|
|
26
|
+
//#endregion
|
|
27
|
+
export { OgAssetModuleBoundary, OgAssetOwnership };
|