vinext 0.0.53 → 0.0.55
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 +1 -0
- package/dist/build/inline-css.d.ts +7 -0
- package/dist/build/inline-css.js +50 -0
- package/dist/build/inline-css.js.map +1 -0
- package/dist/build/prerender.js +2 -1
- package/dist/build/prerender.js.map +1 -1
- package/dist/check.js +19 -3
- package/dist/check.js.map +1 -1
- package/dist/client/navigation-runtime.d.ts +3 -1
- package/dist/client/navigation-runtime.js +1 -1
- package/dist/client/navigation-runtime.js.map +1 -1
- package/dist/client/window-next.d.ts +7 -0
- package/dist/client/window-next.js.map +1 -1
- package/dist/config/next-config.d.ts +97 -2
- package/dist/config/next-config.js +155 -6
- package/dist/config/next-config.js.map +1 -1
- package/dist/config/tsconfig-paths.d.ts +12 -3
- package/dist/config/tsconfig-paths.js +55 -24
- package/dist/config/tsconfig-paths.js.map +1 -1
- package/dist/deploy.js +13 -0
- package/dist/deploy.js.map +1 -1
- package/dist/entries/app-browser-entry.d.ts +11 -1
- package/dist/entries/app-browser-entry.js +16 -6
- package/dist/entries/app-browser-entry.js.map +1 -1
- package/dist/entries/app-rsc-entry.d.ts +9 -1
- package/dist/entries/app-rsc-entry.js +30 -5
- package/dist/entries/app-rsc-entry.js.map +1 -1
- package/dist/entries/app-rsc-manifest.d.ts +21 -1
- package/dist/entries/app-rsc-manifest.js +28 -9
- package/dist/entries/app-rsc-manifest.js.map +1 -1
- package/dist/entries/pages-client-entry.d.ts +4 -1
- package/dist/entries/pages-client-entry.js +18 -2
- package/dist/entries/pages-client-entry.js.map +1 -1
- package/dist/entries/pages-server-entry.js +123 -8
- package/dist/entries/pages-server-entry.js.map +1 -1
- package/dist/entries/runtime-entry-module.d.ts +1 -10
- package/dist/entries/runtime-entry-module.js +2 -12
- package/dist/entries/runtime-entry-module.js.map +1 -1
- package/dist/index.js +144 -44
- package/dist/index.js.map +1 -1
- package/dist/plugins/import-meta-url.d.ts +16 -0
- package/dist/plugins/import-meta-url.js +193 -0
- package/dist/plugins/import-meta-url.js.map +1 -0
- package/dist/plugins/remove-console.d.ts +16 -0
- package/dist/plugins/remove-console.js +176 -0
- package/dist/plugins/remove-console.js.map +1 -0
- package/dist/routing/app-route-graph.d.ts +24 -1
- package/dist/routing/app-route-graph.js +52 -4
- package/dist/routing/app-route-graph.js.map +1 -1
- package/dist/routing/app-router.d.ts +2 -2
- package/dist/routing/app-router.js +2 -2
- package/dist/routing/app-router.js.map +1 -1
- package/dist/routing/file-matcher.d.ts +21 -1
- package/dist/routing/file-matcher.js +39 -1
- package/dist/routing/file-matcher.js.map +1 -1
- package/dist/routing/pages-router.d.ts +1 -1
- package/dist/routing/pages-router.js +10 -3
- package/dist/routing/pages-router.js.map +1 -1
- package/dist/server/api-handler.js +1 -1
- package/dist/server/app-browser-action-result.d.ts +9 -16
- package/dist/server/app-browser-action-result.js +25 -14
- package/dist/server/app-browser-action-result.js.map +1 -1
- package/dist/server/app-browser-entry.js +195 -60
- package/dist/server/app-browser-entry.js.map +1 -1
- package/dist/server/app-browser-mpa-navigation.d.ts +16 -0
- package/dist/server/app-browser-mpa-navigation.js +36 -0
- package/dist/server/app-browser-mpa-navigation.js.map +1 -0
- package/dist/server/app-browser-navigation-controller.d.ts +2 -0
- package/dist/server/app-browser-navigation-controller.js +4 -0
- package/dist/server/app-browser-navigation-controller.js.map +1 -1
- package/dist/server/app-browser-popstate.d.ts +3 -1
- package/dist/server/app-browser-popstate.js +15 -1
- package/dist/server/app-browser-popstate.js.map +1 -1
- package/dist/server/app-browser-state.js +2 -1
- package/dist/server/app-browser-state.js.map +1 -1
- package/dist/server/app-elements-wire.d.ts +13 -4
- package/dist/server/app-elements-wire.js +10 -1
- package/dist/server/app-elements-wire.js.map +1 -1
- package/dist/server/app-elements.d.ts +2 -2
- package/dist/server/app-elements.js +2 -2
- package/dist/server/app-elements.js.map +1 -1
- package/dist/server/app-fallback-renderer.d.ts +15 -5
- package/dist/server/app-fallback-renderer.js +10 -4
- package/dist/server/app-fallback-renderer.js.map +1 -1
- package/dist/server/app-inline-css-client.d.ts +7 -0
- package/dist/server/app-inline-css-client.js +37 -0
- package/dist/server/app-inline-css-client.js.map +1 -0
- package/dist/server/app-layout-param-observation.d.ts +30 -0
- package/dist/server/app-layout-param-observation.js +130 -0
- package/dist/server/app-layout-param-observation.js.map +1 -0
- package/dist/server/app-page-boundary-render.js +2 -2
- package/dist/server/app-page-boundary-render.js.map +1 -1
- package/dist/server/app-page-boundary.d.ts +21 -1
- package/dist/server/app-page-boundary.js +28 -3
- package/dist/server/app-page-boundary.js.map +1 -1
- package/dist/server/app-page-cache.d.ts +7 -3
- package/dist/server/app-page-cache.js +7 -7
- package/dist/server/app-page-cache.js.map +1 -1
- package/dist/server/app-page-dispatch.d.ts +10 -1
- package/dist/server/app-page-dispatch.js +126 -79
- package/dist/server/app-page-dispatch.js.map +1 -1
- package/dist/server/app-page-element-builder.js +12 -28
- package/dist/server/app-page-element-builder.js.map +1 -1
- package/dist/server/app-page-params.d.ts +2 -1
- package/dist/server/app-page-params.js +14 -1
- package/dist/server/app-page-params.js.map +1 -1
- package/dist/server/app-page-probe.d.ts +12 -1
- package/dist/server/app-page-probe.js +116 -1
- package/dist/server/app-page-probe.js.map +1 -1
- package/dist/server/app-page-render-identity.d.ts +22 -0
- package/dist/server/app-page-render-identity.js +42 -0
- package/dist/server/app-page-render-identity.js.map +1 -0
- package/dist/server/app-page-render.d.ts +8 -1
- package/dist/server/app-page-render.js +4 -1
- package/dist/server/app-page-render.js.map +1 -1
- package/dist/server/app-page-request.d.ts +6 -3
- package/dist/server/app-page-request.js +5 -2
- package/dist/server/app-page-request.js.map +1 -1
- package/dist/server/app-page-response.js +2 -2
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-route-wiring.d.ts +15 -0
- package/dist/server/app-page-route-wiring.js +7 -5
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +11 -0
- package/dist/server/app-page-stream.js +1 -0
- package/dist/server/app-page-stream.js.map +1 -1
- package/dist/server/app-route-handler-response.js +37 -5
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-rsc-cache-busting.d.ts +3 -2
- package/dist/server/app-rsc-cache-busting.js +9 -7
- package/dist/server/app-rsc-cache-busting.js.map +1 -1
- package/dist/server/app-rsc-handler.d.ts +14 -3
- package/dist/server/app-rsc-handler.js +56 -6
- package/dist/server/app-rsc-handler.js.map +1 -1
- package/dist/server/app-rsc-request-normalization.d.ts +2 -1
- package/dist/server/app-rsc-request-normalization.js +3 -2
- package/dist/server/app-rsc-request-normalization.js.map +1 -1
- package/dist/server/app-segment-config.d.ts +1 -1
- package/dist/server/app-segment-config.js +4 -1
- package/dist/server/app-segment-config.js.map +1 -1
- package/dist/server/app-server-action-execution.d.ts +26 -3
- package/dist/server/app-server-action-execution.js +240 -29
- package/dist/server/app-server-action-execution.js.map +1 -1
- package/dist/server/app-ssr-entry.d.ts +6 -0
- package/dist/server/app-ssr-entry.js +22 -7
- package/dist/server/app-ssr-entry.js.map +1 -1
- package/dist/server/app-ssr-error-meta.js +3 -3
- package/dist/server/app-ssr-error-meta.js.map +1 -1
- package/dist/server/app-ssr-stream.d.ts +2 -1
- package/dist/server/app-ssr-stream.js +176 -31
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/artifact-compatibility.d.ts +2 -1
- package/dist/server/artifact-compatibility.js +10 -1
- package/dist/server/artifact-compatibility.js.map +1 -1
- package/dist/server/client-reuse-manifest.d.ts +9 -4
- package/dist/server/client-reuse-manifest.js +2 -1
- package/dist/server/client-reuse-manifest.js.map +1 -1
- package/dist/server/client-trace-metadata.d.ts +31 -0
- package/dist/server/client-trace-metadata.js +83 -0
- package/dist/server/client-trace-metadata.js.map +1 -0
- package/dist/server/cookie-utils.d.ts +13 -0
- package/dist/server/cookie-utils.js +20 -0
- package/dist/server/cookie-utils.js.map +1 -0
- package/dist/server/dev-server.d.ts +8 -1
- package/dist/server/dev-server.js +83 -12
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/document-initial-head.d.ts +7 -0
- package/dist/server/document-initial-head.js +35 -0
- package/dist/server/document-initial-head.js.map +1 -0
- package/dist/server/html.d.ts +2 -1
- package/dist/server/html.js +6 -1
- package/dist/server/html.js.map +1 -1
- package/dist/server/isr-cache.d.ts +7 -5
- package/dist/server/isr-cache.js +17 -6
- package/dist/server/isr-cache.js.map +1 -1
- package/dist/server/middleware-runtime.js +1 -2
- package/dist/server/middleware-runtime.js.map +1 -1
- package/dist/server/pages-document-initial-props.d.ts +89 -0
- package/dist/server/pages-document-initial-props.js +140 -0
- package/dist/server/pages-document-initial-props.js.map +1 -0
- package/dist/server/pages-node-compat.js +1 -1
- package/dist/server/pages-page-data.js +3 -0
- package/dist/server/pages-page-data.js.map +1 -1
- package/dist/server/pages-page-method.d.ts +48 -0
- package/dist/server/pages-page-method.js +19 -0
- package/dist/server/pages-page-method.js.map +1 -0
- package/dist/server/pages-page-response.d.ts +20 -0
- package/dist/server/pages-page-response.js +37 -7
- package/dist/server/pages-page-response.js.map +1 -1
- package/dist/server/pages-serializable-props.d.ts +25 -0
- package/dist/server/pages-serializable-props.js +69 -0
- package/dist/server/pages-serializable-props.js.map +1 -0
- package/dist/server/prod-server.js +16 -6
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/server-action-not-found.js +3 -2
- package/dist/server/server-action-not-found.js.map +1 -1
- package/dist/server/skip-cache-proof.d.ts +23 -2
- package/dist/server/skip-cache-proof.js +81 -12
- package/dist/server/skip-cache-proof.js.map +1 -1
- package/dist/server/static-file-cache.js +2 -1
- package/dist/server/static-file-cache.js.map +1 -1
- package/dist/server/static-layout-client-reuse-proof.d.ts +16 -0
- package/dist/server/static-layout-client-reuse-proof.js +35 -0
- package/dist/server/static-layout-client-reuse-proof.js.map +1 -0
- package/dist/shims/app-router-scroll-state.d.ts +4 -2
- package/dist/shims/app-router-scroll-state.js +16 -3
- package/dist/shims/app-router-scroll-state.js.map +1 -1
- package/dist/shims/app-router-scroll.d.ts +16 -2
- package/dist/shims/app-router-scroll.js +18 -3
- package/dist/shims/app-router-scroll.js.map +1 -1
- package/dist/shims/cache.d.ts +27 -1
- package/dist/shims/cache.js +108 -6
- package/dist/shims/cache.js.map +1 -1
- package/dist/shims/document.d.ts +6 -0
- package/dist/shims/document.js +7 -8
- package/dist/shims/document.js.map +1 -1
- package/dist/shims/error-boundary.d.ts +4 -4
- package/dist/shims/error-boundary.js +27 -28
- package/dist/shims/error-boundary.js.map +1 -1
- package/dist/shims/error.js +3 -0
- package/dist/shims/error.js.map +1 -1
- package/dist/shims/fetch-cache.d.ts +3 -1
- package/dist/shims/fetch-cache.js +16 -5
- package/dist/shims/fetch-cache.js.map +1 -1
- package/dist/shims/hash-scroll.d.ts +4 -1
- package/dist/shims/hash-scroll.js +13 -1
- package/dist/shims/hash-scroll.js.map +1 -1
- package/dist/shims/head-state.d.ts +1 -0
- package/dist/shims/head-state.js +18 -3
- package/dist/shims/head-state.js.map +1 -1
- package/dist/shims/head.d.ts +35 -1
- package/dist/shims/head.js +113 -14
- package/dist/shims/head.js.map +1 -1
- package/dist/shims/headers.d.ts +7 -0
- package/dist/shims/headers.js +9 -1
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/internal/app-route-detection.d.ts +37 -0
- package/dist/shims/internal/app-route-detection.js +69 -0
- package/dist/shims/internal/app-route-detection.js.map +1 -0
- package/dist/shims/internal/pages-data-fetch-dedup.d.ts +56 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js +70 -0
- package/dist/shims/internal/pages-data-fetch-dedup.js.map +1 -0
- package/dist/shims/link.d.ts +18 -2
- package/dist/shims/link.js +98 -8
- package/dist/shims/link.js.map +1 -1
- package/dist/shims/metadata.d.ts +7 -6
- package/dist/shims/metadata.js +9 -5
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation.d.ts +40 -3
- package/dist/shims/navigation.js +124 -25
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/router.d.ts +5 -0
- package/dist/shims/router.js +51 -21
- package/dist/shims/router.js.map +1 -1
- package/dist/shims/script.d.ts +11 -1
- package/dist/shims/script.js +75 -6
- package/dist/shims/script.js.map +1 -1
- package/dist/shims/thenable-params.d.ts +5 -2
- package/dist/shims/thenable-params.js +25 -1
- package/dist/shims/thenable-params.js.map +1 -1
- package/dist/shims/unified-request-context.js +3 -0
- package/dist/shims/unified-request-context.js.map +1 -1
- package/dist/utils/client-build-manifest.d.ts +15 -0
- package/dist/utils/client-build-manifest.js +54 -0
- package/dist/utils/client-build-manifest.js.map +1 -0
- package/dist/utils/hash.js +1 -1
- package/dist/utils/hash.js.map +1 -1
- package/dist/utils/lazy-chunks.d.ts +1 -1
- package/dist/utils/lazy-chunks.js.map +1 -1
- package/dist/utils/path.d.ts +13 -0
- package/dist/utils/path.js +16 -0
- package/dist/utils/path.js.map +1 -0
- package/dist/utils/vite-version.d.ts +11 -0
- package/dist/utils/vite-version.js +36 -0
- package/dist/utils/vite-version.js.map +1 -0
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { detectPackageManager } from "./utils/project.js";
|
|
2
2
|
import { normalizePathnameForRouteMatchStrict } from "./routing/utils.js";
|
|
3
|
-
import { createValidFileMatcher } from "./routing/file-matcher.js";
|
|
3
|
+
import { buildViteResolveExtensions, createValidFileMatcher } from "./routing/file-matcher.js";
|
|
4
4
|
import { hasBasePath } from "./utils/base-path.js";
|
|
5
5
|
import { apiRouter, invalidateRouteCache, matchRoute, pagesRouter } from "./routing/pages-router.js";
|
|
6
6
|
import { INTERNAL_HEADERS, VINEXT_INTERNAL_HEADERS, VINEXT_MW_CTX_HEADER, VINEXT_TIMING_HEADER } from "./server/headers.js";
|
|
@@ -8,12 +8,12 @@ import { buildRequestHeadersFromMiddlewareResponse } from "./server/middleware-r
|
|
|
8
8
|
import { normalizePath as normalizePath$1 } from "./server/normalize-path.js";
|
|
9
9
|
import { isExternalUrl, matchHeaders, matchRedirect, matchRewrite, proxyExternalRequest, requestContextFromRequest, sanitizeDestination } from "./config/config-matchers.js";
|
|
10
10
|
import { filterInternalHeaders, isOpenRedirectShaped, normalizeTrailingSlash } from "./server/request-pipeline.js";
|
|
11
|
-
import { mergeRewriteQuery } from "./utils/query.js";
|
|
12
11
|
import { findMiddlewareFile, runMiddleware } from "./server/middleware.js";
|
|
13
12
|
import { generateServerEntry } from "./entries/pages-server-entry.js";
|
|
14
13
|
import { generateClientEntry } from "./entries/pages-client-entry.js";
|
|
15
14
|
import { appRouteGraph, appRouter, invalidateAppRouteCache } from "./routing/app-router.js";
|
|
16
15
|
import { findInstrumentationClientFile, findInstrumentationFile, runInstrumentation } from "./server/instrumentation.js";
|
|
16
|
+
import { mergeRewriteQuery } from "./utils/query.js";
|
|
17
17
|
import { logRequest, now } from "./server/request-log.js";
|
|
18
18
|
import { normalizeDefaultLocalePathname, stripI18nLocaleForApiRoute } from "./server/pages-i18n.js";
|
|
19
19
|
import { createSSRHandler } from "./server/dev-server.js";
|
|
@@ -26,16 +26,18 @@ import { createDirectRunner } from "./server/dev-module-runner.js";
|
|
|
26
26
|
import { validateDevRequest } from "./server/dev-origin-check.js";
|
|
27
27
|
import { generateRscEntry } from "./entries/app-rsc-entry.js";
|
|
28
28
|
import { generateSsrEntry } from "./entries/app-ssr-entry.js";
|
|
29
|
-
import { generateBrowserEntry } from "./entries/app-browser-entry.js";
|
|
29
|
+
import { generateBrowserEntry, isLinkPrefetchRoute, toLinkPrefetchRoute } from "./entries/app-browser-entry.js";
|
|
30
30
|
import { collectRouteClassificationManifest } from "./build/route-classification-manifest.js";
|
|
31
31
|
import { planRouteClassificationInjection } from "./build/route-classification-injector.js";
|
|
32
32
|
import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD } from "./shims/constants.js";
|
|
33
33
|
import { ASSET_PREFIX_URL_DIR, resolveAssetUrlPrefix, resolveAssetsDir } from "./utils/asset-prefix.js";
|
|
34
34
|
import { RESOLVED_VIRTUAL_GOOGLE_FONTS, VIRTUAL_GOOGLE_FONTS, createGoogleFontsPlugin, createLocalFontsPlugin, generateGoogleFontsVirtualModule, parseStaticObjectLiteral } from "./plugins/fonts.js";
|
|
35
|
+
import { getViteMajorVersion } from "./utils/vite-version.js";
|
|
35
36
|
import { findNextConfigPath, loadNextConfig, resolveNextConfig, resolveNextConfigInput } from "./config/next-config.js";
|
|
36
37
|
import { isNextDataPathname, parseNextDataPathname } from "./server/pages-data-route.js";
|
|
37
38
|
import { precompressAssets } from "./build/precompress.js";
|
|
38
|
-
import {
|
|
39
|
+
import { collectInlineCssManifest, injectInlineCssManifestGlobal } from "./build/inline-css.js";
|
|
40
|
+
import { manifestFilesWithBase } from "./utils/manifest-paths.js";
|
|
39
41
|
import { asyncHooksStubPlugin } from "./plugins/async-hooks-stub.js";
|
|
40
42
|
import { clientReferenceDedupPlugin } from "./plugins/client-reference-dedup.js";
|
|
41
43
|
import { dataUrlCssPlugin } from "./plugins/css-data-url.js";
|
|
@@ -49,12 +51,15 @@ import { generateRouteTypes } from "./typegen.js";
|
|
|
49
51
|
import { SSR_EXTERNAL_REACT_ENTRIES, VINEXT_OPTIMIZE_DEPS_EXCLUDE, mergeOptimizeDepsExclude } from "./plugins/rsc-client-shim-excludes.js";
|
|
50
52
|
import { createServerExternalsManifestPlugin } from "./plugins/server-externals-manifest.js";
|
|
51
53
|
import { computeLazyChunks } from "./utils/lazy-chunks.js";
|
|
54
|
+
import { findClientEntryFile, readClientBuildManifest } from "./utils/client-build-manifest.js";
|
|
52
55
|
import { formatMissingCloudflarePluginError, hasWranglerConfig } from "./deploy.js";
|
|
53
56
|
import { resolvePostcssStringPlugins } from "./plugins/postcss.js";
|
|
54
57
|
import { buildSassPreprocessorOptions } from "./plugins/sass.js";
|
|
55
58
|
import { createClientCodeSplittingConfig, createClientManualChunks, createClientOutputConfig, getBuildBundlerOptions, getClientTreeshakeConfigForVite, withBuildBundlerOptions } from "./build/client-build-config.js";
|
|
56
59
|
import { augmentSsrManifestFromBundle, relativeWithinRoot, tryRealpathSync } from "./build/ssr-manifest.js";
|
|
57
60
|
import { stripServerExports } from "./plugins/strip-server-exports.js";
|
|
61
|
+
import { removeConsoleCalls } from "./plugins/remove-console.js";
|
|
62
|
+
import { createImportMetaUrlPlugin } from "./plugins/import-meta-url.js";
|
|
58
63
|
import { hasMdxFiles } from "./utils/mdx-scan.js";
|
|
59
64
|
import { scanPublicFileRoutes } from "./utils/public-routes.js";
|
|
60
65
|
import { staticExportApp, staticExportPages } from "./build/static-export.js";
|
|
@@ -73,6 +78,50 @@ function createRscCompatibilityId(nextConfig) {
|
|
|
73
78
|
if (nextConfig.deploymentId) return nextConfig.deploymentId;
|
|
74
79
|
return randomUUID();
|
|
75
80
|
}
|
|
81
|
+
function hasModuleLevelUseServerDirective(body) {
|
|
82
|
+
for (const node of body) {
|
|
83
|
+
if (node.type !== "ExpressionStatement") break;
|
|
84
|
+
const directive = node.directive;
|
|
85
|
+
const expression = node.expression;
|
|
86
|
+
const value = typeof directive === "string" ? directive : expression?.type === "Literal" ? expression.value : void 0;
|
|
87
|
+
if (value === "use server") return true;
|
|
88
|
+
if (typeof value !== "string") break;
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
function hasServerOnlyMarkerImport(code) {
|
|
93
|
+
if (!code.includes("server-only")) return false;
|
|
94
|
+
let ast;
|
|
95
|
+
try {
|
|
96
|
+
ast = parseAst(code);
|
|
97
|
+
} catch {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
if (hasModuleLevelUseServerDirective(ast.body)) return false;
|
|
101
|
+
function walk(node) {
|
|
102
|
+
if (!node) return false;
|
|
103
|
+
if (Array.isArray(node)) return node.some((child) => walk(child));
|
|
104
|
+
if (typeof node !== "object") return false;
|
|
105
|
+
if (node.type === "ImportDeclaration") {
|
|
106
|
+
if (node.source?.value === "server-only") return true;
|
|
107
|
+
}
|
|
108
|
+
if (node.type === "CallExpression") {
|
|
109
|
+
const call = node;
|
|
110
|
+
if (call.callee?.type === "Identifier" && call.callee.name === "require" && call.arguments?.[0]?.type === "Literal" && call.arguments[0].value === "server-only") return true;
|
|
111
|
+
}
|
|
112
|
+
for (const key of Object.keys(node)) {
|
|
113
|
+
if (key === "type" || key === "start" || key === "end" || key === "loc" || key === "parent") continue;
|
|
114
|
+
const value = node[key];
|
|
115
|
+
if (Array.isArray(value)) {
|
|
116
|
+
if (value.some((child) => child && typeof child === "object" && walk(child))) return true;
|
|
117
|
+
} else if (value && typeof value === "object" && "type" in value) {
|
|
118
|
+
if (walk(value)) return true;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
return false;
|
|
122
|
+
}
|
|
123
|
+
return walk(ast.body);
|
|
124
|
+
}
|
|
76
125
|
const __dirname = import.meta.dirname;
|
|
77
126
|
function resolveOptionalDependency(projectRoot, specifier) {
|
|
78
127
|
try {
|
|
@@ -192,27 +241,6 @@ function loadTsconfigPathAliases(configPath, projectRoot, seen = /* @__PURE__ */
|
|
|
192
241
|
};
|
|
193
242
|
}
|
|
194
243
|
/**
|
|
195
|
-
* Detect Vite major version at runtime by resolving from cwd.
|
|
196
|
-
* The plugin may be installed in a workspace root with Vite 7 but used
|
|
197
|
-
* by a project that has Vite 8 — so we resolve from cwd, not from
|
|
198
|
-
* the plugin's own location.
|
|
199
|
-
*/
|
|
200
|
-
function getViteMajorVersion() {
|
|
201
|
-
try {
|
|
202
|
-
const vitePkg = createRequire(path.join(process.cwd(), "package.json"))("vite/package.json");
|
|
203
|
-
const viteMajor = parseInt(vitePkg?.version, 10);
|
|
204
|
-
if (vitePkg?.name === "vite" && Number.isFinite(viteMajor)) return viteMajor;
|
|
205
|
-
const bundledViteMajor = parseInt(vitePkg?.bundledVersions?.vite, 10);
|
|
206
|
-
if (Number.isFinite(bundledViteMajor)) return bundledViteMajor;
|
|
207
|
-
console.warn(`[vinext] Could not determine Vite major version from ${vitePkg?.name ?? "vite/package.json"}; assuming Vite 7`);
|
|
208
|
-
return 7;
|
|
209
|
-
} catch (error) {
|
|
210
|
-
const message = error instanceof Error ? error.message : String(error);
|
|
211
|
-
console.warn(`[vinext] Failed to resolve vite/package.json (${message}); assuming Vite 7`);
|
|
212
|
-
return 7;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
244
|
* Read the vinext package version once at plugin load. Surfaced via
|
|
217
245
|
* `process.env.__NEXT_VERSION` define so `window.next.version` lands a
|
|
218
246
|
* real string instead of the `"vinext"` fallback. Resolved relative to
|
|
@@ -389,7 +417,8 @@ function vinext(options = {}) {
|
|
|
389
417
|
* __NEXT_DATA__ to determine which page to hydrate.
|
|
390
418
|
*/
|
|
391
419
|
async function generateClientEntry$1() {
|
|
392
|
-
|
|
420
|
+
const appPrefetchRoutes = hasAppDir ? (await appRouter(appDir, nextConfig?.pageExtensions, fileMatcher)).filter(isLinkPrefetchRoute).map(toLinkPrefetchRoute) : [];
|
|
421
|
+
return generateClientEntry(pagesDir, nextConfig, fileMatcher, { appPrefetchRoutes });
|
|
393
422
|
}
|
|
394
423
|
async function writeRouteTypes() {
|
|
395
424
|
if (!hasAppDir) return;
|
|
@@ -553,6 +582,8 @@ function vinext(options = {}) {
|
|
|
553
582
|
defines[`process.env.${key}`] = JSON.stringify(value);
|
|
554
583
|
}
|
|
555
584
|
defines["process.env.__NEXT_ROUTER_BASEPATH"] = JSON.stringify(nextConfig.basePath);
|
|
585
|
+
defines["process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME"] = JSON.stringify(String(nextConfig.staleTimes.static));
|
|
586
|
+
defines["process.env.__VINEXT_PREFETCH_INLINING"] = JSON.stringify(nextConfig.prefetchInlining ? "true" : "false");
|
|
556
587
|
defines["process.env.__VINEXT_TRAILING_SLASH"] = JSON.stringify(nextConfig.trailingSlash ? "true" : "false");
|
|
557
588
|
defines["process.env.__VINEXT_IMAGE_REMOTE_PATTERNS"] = JSON.stringify(JSON.stringify(nextConfig.images?.remotePatterns ?? []));
|
|
558
589
|
defines["process.env.__VINEXT_IMAGE_DOMAINS"] = JSON.stringify(JSON.stringify(nextConfig.images?.domains ?? []));
|
|
@@ -585,8 +616,14 @@ function vinext(options = {}) {
|
|
|
585
616
|
defines["process.env.__VINEXT_BUILD_ID"] = JSON.stringify(nextConfig.buildId);
|
|
586
617
|
defines["process.env.__VINEXT_RSC_COMPATIBILITY_ID"] = JSON.stringify(rscCompatibilityId);
|
|
587
618
|
defines["process.env.__VINEXT_DEPLOYMENT_ID"] = JSON.stringify(nextConfig.deploymentId ?? "");
|
|
619
|
+
defines["process.env.NEXT_DEPLOYMENT_ID"] = nextConfig.deploymentId ? JSON.stringify(nextConfig.deploymentId) : "false";
|
|
588
620
|
defines["process.env.__NEXT_VERSION"] = JSON.stringify(getVinextVersion());
|
|
589
|
-
defines["process.env.__NEXT_APP_SHELLS"] = JSON.stringify(
|
|
621
|
+
defines["process.env.__NEXT_APP_SHELLS"] = JSON.stringify(nextConfig.appShells);
|
|
622
|
+
for (const [key, value] of Object.entries(nextConfig.compilerDefine)) {
|
|
623
|
+
if (key in defines) throw new Error(`The \`compiler.define\` option is configured to replace the \`${key}\` variable. This variable is either part of a built-in or is already configured.`);
|
|
624
|
+
defines[key] = value;
|
|
625
|
+
}
|
|
626
|
+
for (const key of Object.keys(nextConfig.compilerDefineServer)) if (key in defines) throw new Error(`The \`compiler.defineServer\` option is configured to replace the \`${key}\` variable. This variable is either part of a built-in or is already configured.`);
|
|
590
627
|
nextShimMap = Object.fromEntries(Object.entries({
|
|
591
628
|
"next/link": path.join(shimsDir, "link"),
|
|
592
629
|
"next/head": path.join(shimsDir, "head"),
|
|
@@ -704,6 +741,7 @@ function vinext(options = {}) {
|
|
|
704
741
|
...nextConfig.aliases,
|
|
705
742
|
...nextShimMap
|
|
706
743
|
},
|
|
744
|
+
extensions: buildViteResolveExtensions(nextConfig.pageExtensions),
|
|
707
745
|
dedupe: [
|
|
708
746
|
"react",
|
|
709
747
|
"react-dom",
|
|
@@ -924,8 +962,11 @@ function vinext(options = {}) {
|
|
|
924
962
|
allowedDevOrigins: nextConfig?.allowedDevOrigins,
|
|
925
963
|
bodySizeLimit: nextConfig?.serverActionsBodySizeLimit,
|
|
926
964
|
htmlLimitedBots: nextConfig?.htmlLimitedBots,
|
|
965
|
+
clientTraceMetadata: nextConfig?.clientTraceMetadata,
|
|
927
966
|
assetPrefix: nextConfig?.assetPrefix,
|
|
928
967
|
expireTime: nextConfig?.expireTime,
|
|
968
|
+
cacheMaxMemorySize: nextConfig?.cacheMaxMemorySize,
|
|
969
|
+
inlineCss: nextConfig?.inlineCss,
|
|
929
970
|
i18n: nextConfig?.i18n,
|
|
930
971
|
hasPagesDir,
|
|
931
972
|
publicFiles: scanPublicFileRoutes(root),
|
|
@@ -1415,7 +1456,7 @@ function vinext(options = {}) {
|
|
|
1415
1456
|
await proxyExternalRewriteNode(req, res, resolvedUrl);
|
|
1416
1457
|
return;
|
|
1417
1458
|
}
|
|
1418
|
-
const handler = createSSRHandler(server, getPagesRunner(), routes, pagesDir, nextConfig?.i18n, fileMatcher, nextConfig?.basePath ?? "", nextConfig?.trailingSlash ?? false, middlewarePath !== null);
|
|
1459
|
+
const handler = createSSRHandler(server, getPagesRunner(), routes, pagesDir, nextConfig?.i18n, fileMatcher, nextConfig?.basePath ?? "", nextConfig?.trailingSlash ?? false, middlewarePath !== null, nextConfig?.clientTraceMetadata);
|
|
1419
1460
|
const mwStatus = req.__vinextMiddlewareStatus;
|
|
1420
1461
|
if (match) {
|
|
1421
1462
|
applyDeferredMwHeaders();
|
|
@@ -1451,6 +1492,21 @@ function vinext(options = {}) {
|
|
|
1451
1492
|
};
|
|
1452
1493
|
}
|
|
1453
1494
|
},
|
|
1495
|
+
{
|
|
1496
|
+
name: "vinext:validate-server-only-client-imports",
|
|
1497
|
+
transform: {
|
|
1498
|
+
filter: {
|
|
1499
|
+
id: /\.(tsx?|jsx?|mjs)$/,
|
|
1500
|
+
code: "server-only"
|
|
1501
|
+
},
|
|
1502
|
+
handler(code, id) {
|
|
1503
|
+
if (this.environment?.name !== "client") return null;
|
|
1504
|
+
if (id.startsWith("\0")) return null;
|
|
1505
|
+
if (!hasServerOnlyMarkerImport(code)) return null;
|
|
1506
|
+
throw new Error(`You're importing a module that depends on "server-only". This API is only available in Server Components in the App Router, but this module is reachable from a client bundle.`);
|
|
1507
|
+
}
|
|
1508
|
+
}
|
|
1509
|
+
},
|
|
1454
1510
|
{
|
|
1455
1511
|
name: "vinext:strip-server-exports",
|
|
1456
1512
|
transform: {
|
|
@@ -1471,6 +1527,32 @@ function vinext(options = {}) {
|
|
|
1471
1527
|
}
|
|
1472
1528
|
}
|
|
1473
1529
|
},
|
|
1530
|
+
{
|
|
1531
|
+
name: "vinext:remove-console",
|
|
1532
|
+
apply: "build",
|
|
1533
|
+
transform: {
|
|
1534
|
+
filter: { id: /\.(tsx?|jsx?|mjs)$/ },
|
|
1535
|
+
handler(code, id) {
|
|
1536
|
+
if (this.environment?.name !== "client") return null;
|
|
1537
|
+
if (!nextConfig.removeConsole) return null;
|
|
1538
|
+
if (id.includes("/node_modules/")) return null;
|
|
1539
|
+
const result = removeConsoleCalls(code, nextConfig.removeConsole);
|
|
1540
|
+
if (!result) return null;
|
|
1541
|
+
return {
|
|
1542
|
+
code: result,
|
|
1543
|
+
map: null
|
|
1544
|
+
};
|
|
1545
|
+
}
|
|
1546
|
+
}
|
|
1547
|
+
},
|
|
1548
|
+
{
|
|
1549
|
+
name: "vinext:compiler-define-server",
|
|
1550
|
+
configEnvironment(name) {
|
|
1551
|
+
if (Object.keys(nextConfig.compilerDefineServer).length === 0) return null;
|
|
1552
|
+
if (name === "client") return null;
|
|
1553
|
+
return { define: { ...nextConfig.compilerDefineServer } };
|
|
1554
|
+
}
|
|
1555
|
+
},
|
|
1474
1556
|
{
|
|
1475
1557
|
name: "vinext:image-imports",
|
|
1476
1558
|
enforce: "pre",
|
|
@@ -1642,6 +1724,7 @@ function vinext(options = {}) {
|
|
|
1642
1724
|
}
|
|
1643
1725
|
}
|
|
1644
1726
|
},
|
|
1727
|
+
createImportMetaUrlPlugin({ getRoot: () => root }),
|
|
1645
1728
|
createOgInlineFetchAssetsPlugin(),
|
|
1646
1729
|
ogAssetsPlugin,
|
|
1647
1730
|
createServerExternalsManifestPlugin(),
|
|
@@ -1818,6 +1901,25 @@ function vinext(options = {}) {
|
|
|
1818
1901
|
}
|
|
1819
1902
|
};
|
|
1820
1903
|
})(),
|
|
1904
|
+
{
|
|
1905
|
+
name: "vinext:inline-css-manifest",
|
|
1906
|
+
apply: "build",
|
|
1907
|
+
enforce: "post",
|
|
1908
|
+
closeBundle: {
|
|
1909
|
+
sequential: true,
|
|
1910
|
+
order: "post",
|
|
1911
|
+
handler() {
|
|
1912
|
+
if (this.environment?.name !== "client") return;
|
|
1913
|
+
if (!hasAppDir || nextConfig?.inlineCss !== true) return;
|
|
1914
|
+
const envConfig = this.environment?.config;
|
|
1915
|
+
if (!envConfig) return;
|
|
1916
|
+
const buildRoot = envConfig.root ?? process.cwd();
|
|
1917
|
+
const manifest = collectInlineCssManifest(path.resolve(buildRoot, "dist", "client"), nextConfig.assetPrefix);
|
|
1918
|
+
const rscOutDir = path.resolve(buildRoot, options.rscOutDir ?? path.join("dist", "server"));
|
|
1919
|
+
for (const entryFile of ["index.js", "index.mjs"]) if (injectInlineCssManifestGlobal(path.join(rscOutDir, entryFile), manifest)) break;
|
|
1920
|
+
}
|
|
1921
|
+
}
|
|
1922
|
+
},
|
|
1821
1923
|
{
|
|
1822
1924
|
name: "vinext:cloudflare-build",
|
|
1823
1925
|
apply: "build",
|
|
@@ -1838,16 +1940,17 @@ function vinext(options = {}) {
|
|
|
1838
1940
|
const clientBase = envConfig.base ?? "/";
|
|
1839
1941
|
let lazyChunksData = null;
|
|
1840
1942
|
let clientEntryFile = null;
|
|
1841
|
-
const
|
|
1842
|
-
if (
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1943
|
+
const buildManifest = readClientBuildManifest(path.join(clientDir, ".vite", "manifest.json"));
|
|
1944
|
+
if (buildManifest) {
|
|
1945
|
+
clientEntryFile = findClientEntryFile({
|
|
1946
|
+
buildManifest,
|
|
1947
|
+
clientDir,
|
|
1948
|
+
assetsSubdir: resolveAssetsDir(nextConfig?.assetPrefix),
|
|
1949
|
+
assetBase: clientBase
|
|
1950
|
+
}) ?? null;
|
|
1848
1951
|
const lazy = manifestFilesWithBase(computeLazyChunks(buildManifest), clientBase);
|
|
1849
1952
|
if (lazy.length > 0) lazyChunksData = lazy;
|
|
1850
|
-
}
|
|
1953
|
+
}
|
|
1851
1954
|
let ssrManifestData = null;
|
|
1852
1955
|
const ssrManifestPath = path.join(clientDir, ".vite", "ssr-manifest.json");
|
|
1853
1956
|
if (fs.existsSync(ssrManifestPath)) try {
|
|
@@ -1876,14 +1979,11 @@ function vinext(options = {}) {
|
|
|
1876
1979
|
if (!workerOutDir) return;
|
|
1877
1980
|
const workerEntry = path.join(workerOutDir, "index.js");
|
|
1878
1981
|
if (!fs.existsSync(workerEntry)) return;
|
|
1879
|
-
if (!clientEntryFile) {
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
if (entry) clientEntryFile = manifestFileWithBase(`${assetsSubdir}/${entry}`, clientBase);
|
|
1885
|
-
}
|
|
1886
|
-
}
|
|
1982
|
+
if (!clientEntryFile) clientEntryFile = findClientEntryFile({
|
|
1983
|
+
clientDir,
|
|
1984
|
+
assetsSubdir: resolveAssetsDir(nextConfig?.assetPrefix),
|
|
1985
|
+
assetBase: clientBase
|
|
1986
|
+
}) ?? null;
|
|
1887
1987
|
if (clientEntryFile || ssrManifestData || lazyChunksData) {
|
|
1888
1988
|
let code = fs.readFileSync(workerEntry, "utf-8");
|
|
1889
1989
|
const globals = [];
|