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
|
@@ -3,7 +3,8 @@ import { applyLocaleToRoutes, isExternalUrl } from "./config-matchers.js";
|
|
|
3
3
|
import { isUnknownRecord } from "../utils/record.js";
|
|
4
4
|
import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD } from "../shims/constants.js";
|
|
5
5
|
import { getHtmlLimitedBotRegex } from "../utils/html-limited-bots.js";
|
|
6
|
-
import {
|
|
6
|
+
import { loadTsconfigResolutionForRoot } from "./tsconfig-paths.js";
|
|
7
|
+
import { getViteMajorVersion } from "../utils/vite-version.js";
|
|
7
8
|
import { createRequire } from "node:module";
|
|
8
9
|
import fs from "node:fs";
|
|
9
10
|
import path from "node:path";
|
|
@@ -291,7 +292,9 @@ async function loadNextConfig(root, phase = DEFAULT_PHASE) {
|
|
|
291
292
|
const configPath = findNextConfigPath(root);
|
|
292
293
|
if (!configPath) return null;
|
|
293
294
|
const filename = path.basename(configPath);
|
|
294
|
-
const
|
|
295
|
+
const isTypeScriptConfig = /\.[cm]?ts$/.test(configPath);
|
|
296
|
+
const tsconfigResolution = loadTsconfigResolutionForRoot(root);
|
|
297
|
+
const useNativeTsconfigPaths = !!(isTypeScriptConfig ? tsconfigResolution.baseUrl : null) && getViteMajorVersion() >= 8;
|
|
295
298
|
const normalizedConfigPath = safeRealpath(path.resolve(configPath));
|
|
296
299
|
try {
|
|
297
300
|
const { runnerImport } = await import("vite");
|
|
@@ -300,7 +303,8 @@ async function loadNextConfig(root, phase = DEFAULT_PHASE) {
|
|
|
300
303
|
logLevel: "error",
|
|
301
304
|
clearScreen: false,
|
|
302
305
|
resolve: {
|
|
303
|
-
alias:
|
|
306
|
+
alias: tsconfigResolution.aliases,
|
|
307
|
+
...useNativeTsconfigPaths ? { tsconfigPaths: true } : {},
|
|
304
308
|
extensions: [
|
|
305
309
|
".mjs",
|
|
306
310
|
".js",
|
|
@@ -313,7 +317,7 @@ async function loadNextConfig(root, phase = DEFAULT_PHASE) {
|
|
|
313
317
|
".json"
|
|
314
318
|
]
|
|
315
319
|
},
|
|
316
|
-
plugins: [
|
|
320
|
+
plugins: [...isTypeScriptConfig ? [cjsGlobalsInjectorPlugin(configPath)] : [], commonjs({ filter: (id) => {
|
|
317
321
|
const idPath = id.startsWith("file://") ? fileURLToPath(id) : id.split("?")[0];
|
|
318
322
|
if (safeRealpath(path.resolve(idPath)) === normalizedConfigPath) return false;
|
|
319
323
|
return id.includes("node_modules") ? true : void 0;
|
|
@@ -423,6 +427,49 @@ function readStringArray(value) {
|
|
|
423
427
|
return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
|
|
424
428
|
}
|
|
425
429
|
/**
|
|
430
|
+
* Serialize a `compiler.define` / `compiler.defineServer` map into the
|
|
431
|
+
* Vite-friendly `Record<string, string>` shape where each value is already
|
|
432
|
+
* a JSON-encoded literal of source code. Entries whose values are not a
|
|
433
|
+
* string/number/boolean are silently dropped, matching how Next.js types
|
|
434
|
+
* the API (other shapes are not part of the contract).
|
|
435
|
+
*
|
|
436
|
+
* Mirrors Next.js: packages/next/src/build/define-env.ts (serializeDefineEnv).
|
|
437
|
+
*/
|
|
438
|
+
function serializeCompilerDefine(value) {
|
|
439
|
+
if (!isUnknownRecord(value)) return {};
|
|
440
|
+
const out = {};
|
|
441
|
+
for (const [key, raw] of Object.entries(value)) if (typeof raw === "string" || typeof raw === "number" || typeof raw === "boolean") out[key] = JSON.stringify(raw);
|
|
442
|
+
return out;
|
|
443
|
+
}
|
|
444
|
+
/**
|
|
445
|
+
* Defaults for `experimental.staleTimes` (in seconds), matching Next.js'
|
|
446
|
+
* `config-shared.ts` defaults.
|
|
447
|
+
*/
|
|
448
|
+
const DEFAULT_STALE_TIMES = {
|
|
449
|
+
dynamic: 0,
|
|
450
|
+
static: 300
|
|
451
|
+
};
|
|
452
|
+
/**
|
|
453
|
+
* Parse `experimental.staleTimes` from a raw next.config object.
|
|
454
|
+
*
|
|
455
|
+
* Mirrors Next.js' `build/define-env.ts` parsing logic:
|
|
456
|
+
* - missing / NaN / negative values fall back to the documented defaults
|
|
457
|
+
* (`dynamic: 0`, `static: 300`) — matching Next.js parity and the
|
|
458
|
+
* non-negative guard in `resolvePrefetchCacheTtl`
|
|
459
|
+
* - all values are in seconds
|
|
460
|
+
*
|
|
461
|
+
* @see https://nextjs.org/docs/app/api-reference/config/next-config-js/staleTimes
|
|
462
|
+
*/
|
|
463
|
+
function resolveStaleTimes(experimental) {
|
|
464
|
+
const staleTimes = readOptionalRecord(experimental?.staleTimes);
|
|
465
|
+
const dynamicRaw = Number(staleTimes?.dynamic);
|
|
466
|
+
const staticRaw = Number(staleTimes?.static);
|
|
467
|
+
return {
|
|
468
|
+
dynamic: Number.isFinite(dynamicRaw) && dynamicRaw >= 0 ? dynamicRaw : DEFAULT_STALE_TIMES.dynamic,
|
|
469
|
+
static: Number.isFinite(staticRaw) && staticRaw >= 0 ? staticRaw : DEFAULT_STALE_TIMES.static
|
|
470
|
+
};
|
|
471
|
+
}
|
|
472
|
+
/**
|
|
426
473
|
* Resolve a NextConfig into a fully-resolved ResolvedNextConfig.
|
|
427
474
|
* Awaits async functions for redirects/rewrites/headers.
|
|
428
475
|
*/
|
|
@@ -438,6 +485,7 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
438
485
|
output: "",
|
|
439
486
|
pageExtensions: normalizePageExtensions(),
|
|
440
487
|
cacheComponents: false,
|
|
488
|
+
prefetchInlining: false,
|
|
441
489
|
redirects: [],
|
|
442
490
|
rewrites: {
|
|
443
491
|
beforeFiles: [],
|
|
@@ -452,6 +500,7 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
452
500
|
allowedDevOrigins: [],
|
|
453
501
|
serverActionsAllowedOrigins: [],
|
|
454
502
|
optimizePackageImports: [],
|
|
503
|
+
inlineCss: false,
|
|
455
504
|
serverActionsBodySizeLimit: 1 * 1024 * 1024,
|
|
456
505
|
expireTime: DEFAULT_EXPIRE_TIME,
|
|
457
506
|
htmlLimitedBots: void 0,
|
|
@@ -459,11 +508,18 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
459
508
|
cacheHandler: void 0,
|
|
460
509
|
cacheMaxMemorySize: void 0,
|
|
461
510
|
enablePrerenderSourceMaps: true,
|
|
511
|
+
appShells: false,
|
|
462
512
|
hashSalt: process.env.NEXT_HASH_SALT ?? "",
|
|
463
513
|
buildId,
|
|
464
514
|
deploymentId,
|
|
465
515
|
sassOptions: null,
|
|
466
|
-
|
|
516
|
+
removeConsole: false,
|
|
517
|
+
disableOptimizedLoading: false,
|
|
518
|
+
compilerDefine: {},
|
|
519
|
+
compilerDefineServer: {},
|
|
520
|
+
instrumentationClientInject: [],
|
|
521
|
+
clientTraceMetadata: void 0,
|
|
522
|
+
staleTimes: { ...DEFAULT_STALE_TIMES }
|
|
467
523
|
};
|
|
468
524
|
detectNextIntlConfig(root, resolved);
|
|
469
525
|
return resolved;
|
|
@@ -516,11 +572,24 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
516
572
|
const htmlLimitedBots = resolveHtmlLimitedBots(config.htmlLimitedBots);
|
|
517
573
|
const rawOptimize = experimental?.optimizePackageImports;
|
|
518
574
|
const optimizePackageImports = Array.isArray(rawOptimize) ? rawOptimize.filter((x) => typeof x === "string") : [];
|
|
575
|
+
const inlineCss = experimental?.inlineCss === true;
|
|
576
|
+
const prefetchInlining = experimental?.prefetchInlining === true || isUnknownRecord(experimental?.prefetchInlining);
|
|
577
|
+
const appShells = experimental?.appShells === true;
|
|
578
|
+
if (appShells) {
|
|
579
|
+
const missingCoFlags = [];
|
|
580
|
+
if (!config.cacheComponents) missingCoFlags.push("cacheComponents");
|
|
581
|
+
if (experimental?.prefetchInlining !== true) missingCoFlags.push("experimental.prefetchInlining");
|
|
582
|
+
if (experimental?.varyParams !== true) missingCoFlags.push("experimental.varyParams");
|
|
583
|
+
if (experimental?.optimisticRouting !== true) missingCoFlags.push("experimental.optimisticRouting");
|
|
584
|
+
if (experimental?.cachedNavigations !== true) missingCoFlags.push("experimental.cachedNavigations");
|
|
585
|
+
if (missingCoFlags.length > 0) console.warn(`[vinext] experimental.appShells is enabled but requires the following co-flags which are not yet supported or not enabled: ${missingCoFlags.join(", ")}. App Shell prefetching behavior is not implemented in vinext (see issue #1614). The flag will be accepted for config compatibility but has no functional effect.`);
|
|
586
|
+
}
|
|
519
587
|
const topLevelServerExternalPackages = Array.isArray(config.serverExternalPackages) ? readStringArray(config.serverExternalPackages) : void 0;
|
|
520
588
|
const legacyServerComponentsExternal = readStringArray(experimental?.serverComponentsExternalPackages);
|
|
521
589
|
const serverExternalPackages = topLevelServerExternalPackages ?? legacyServerComponentsExternal;
|
|
522
590
|
if (experimental?.swcEnvOptions !== void 0) console.warn("[vinext] next.config option \"experimental.swcEnvOptions\" is not applicable and will be ignored (vinext uses Vite, not SWC). A Vite-compatible polyfill solution may be explored in the future.");
|
|
523
591
|
if (experimental?.rootParams !== void 0) console.warn("[vinext] `experimental.rootParams` is no longer needed, because `next/root-params` is available by default. You can remove it from next.config.(js|mjs|ts).");
|
|
592
|
+
if (experimental?.cachedNavigations === true && !config.cacheComponents) console.warn("[vinext] `experimental.cachedNavigations` requires `cacheComponents: true` to have any effect. Set `cacheComponents: true` in your next.config, or remove `experimental.cachedNavigations`.");
|
|
524
593
|
if (config.webpack !== void 0) if (mdx || Object.keys(webpackProbe.aliases).length > 0) console.warn("[vinext] next.config option \"webpack\" is only partially supported. vinext preserves resolve.alias entries and MDX loader settings, but other webpack customization is ignored");
|
|
525
594
|
else console.warn("[vinext] next.config option \"webpack\" is not yet supported and will be ignored");
|
|
526
595
|
const output = readOptionalString(config.output) ?? "";
|
|
@@ -555,6 +624,7 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
555
624
|
pageExtensions,
|
|
556
625
|
instrumentationClientInject: Array.isArray(config.instrumentationClientInject) ? config.instrumentationClientInject.filter((x) => typeof x === "string") : [],
|
|
557
626
|
cacheComponents: config.cacheComponents ?? false,
|
|
627
|
+
prefetchInlining,
|
|
558
628
|
redirects,
|
|
559
629
|
rewrites,
|
|
560
630
|
headers,
|
|
@@ -565,6 +635,7 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
565
635
|
allowedDevOrigins,
|
|
566
636
|
serverActionsAllowedOrigins,
|
|
567
637
|
optimizePackageImports,
|
|
638
|
+
inlineCss,
|
|
568
639
|
serverActionsBodySizeLimit,
|
|
569
640
|
expireTime: typeof config.expireTime === "number" ? config.expireTime : DEFAULT_EXPIRE_TIME,
|
|
570
641
|
htmlLimitedBots,
|
|
@@ -572,10 +643,17 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
572
643
|
cacheHandler,
|
|
573
644
|
cacheMaxMemorySize,
|
|
574
645
|
enablePrerenderSourceMaps: config.enablePrerenderSourceMaps ?? true,
|
|
646
|
+
appShells,
|
|
575
647
|
hashSalt,
|
|
576
648
|
buildId,
|
|
577
649
|
deploymentId,
|
|
578
|
-
sassOptions: readOptionalRecord(config.sassOptions) ?? null
|
|
650
|
+
sassOptions: readOptionalRecord(config.sassOptions) ?? null,
|
|
651
|
+
removeConsole: config.compiler?.removeConsole === true ? true : isUnknownRecord(config.compiler?.removeConsole) ? { exclude: readStringArray(config.compiler.removeConsole.exclude) } : false,
|
|
652
|
+
disableOptimizedLoading: experimental?.disableOptimizedLoading === true,
|
|
653
|
+
compilerDefine: serializeCompilerDefine(config.compiler?.define),
|
|
654
|
+
compilerDefineServer: serializeCompilerDefine(config.compiler?.defineServer),
|
|
655
|
+
clientTraceMetadata: Array.isArray(experimental?.clientTraceMetadata) ? experimental.clientTraceMetadata.filter((value) => typeof value === "string") : void 0,
|
|
656
|
+
staleTimes: resolveStaleTimes(experimental)
|
|
579
657
|
};
|
|
580
658
|
detectNextIntlConfig(root, resolved);
|
|
581
659
|
if (resolved.basePath !== "" && resolved.basePath !== "/" && resolved.assetPrefix === "") resolved.assetPrefix = resolved.basePath;
|
|
@@ -619,6 +697,7 @@ async function probeWebpackConfig(config, root) {
|
|
|
619
697
|
try {
|
|
620
698
|
const finalConfig = await config.webpack(mockConfig, mockOptions) ?? mockConfig;
|
|
621
699
|
const rules = finalConfig.module?.rules ?? mockModuleRules;
|
|
700
|
+
invokeLoaderSideEffects(rules, root);
|
|
622
701
|
return {
|
|
623
702
|
aliases: normalizeAliasEntries(finalConfig.resolve?.alias, root),
|
|
624
703
|
mdx: extractMdxOptionsFromRules(rules)
|
|
@@ -631,6 +710,76 @@ async function probeWebpackConfig(config, root) {
|
|
|
631
710
|
}
|
|
632
711
|
}
|
|
633
712
|
/**
|
|
713
|
+
* Walk webpack module rules and invoke each referenced loader once with a
|
|
714
|
+
* dummy source string. Loaders that mutate `process.env` at compile time (a
|
|
715
|
+
* pattern supported by Next.js' webpack pipeline — see issue #1500) get a
|
|
716
|
+
* chance to land their mutations before vinext computes its defines.
|
|
717
|
+
* Failures are swallowed: a loader throwing on dummy input must not break
|
|
718
|
+
* the build, since vinext doesn't actually use the loader's transform output.
|
|
719
|
+
*/
|
|
720
|
+
function invokeLoaderSideEffects(rules, root) {
|
|
721
|
+
const require = createRequire(path.join(root, "package.json"));
|
|
722
|
+
const seen = /* @__PURE__ */ new Set();
|
|
723
|
+
const invokeLoaderEntry = (entry, ruleOptions) => {
|
|
724
|
+
if (!entry) return;
|
|
725
|
+
let loaderPath;
|
|
726
|
+
let loaderFn;
|
|
727
|
+
let options = ruleOptions;
|
|
728
|
+
if (typeof entry === "string") loaderPath = entry;
|
|
729
|
+
else if (typeof entry === "function") loaderFn = entry;
|
|
730
|
+
else if (typeof entry === "object") {
|
|
731
|
+
const e = entry;
|
|
732
|
+
if (typeof e.loader === "string") loaderPath = e.loader;
|
|
733
|
+
else if (typeof e.loader === "function") loaderFn = e.loader;
|
|
734
|
+
if (e.options !== void 0) options = e.options;
|
|
735
|
+
}
|
|
736
|
+
if (loaderPath !== void 0) {
|
|
737
|
+
if (seen.has(loaderPath)) return;
|
|
738
|
+
seen.add(loaderPath);
|
|
739
|
+
if (loaderPath.includes("next-babel-loader") || loaderPath.includes("mdx") || loaderPath.startsWith("next/dist/build/webpack")) return;
|
|
740
|
+
try {
|
|
741
|
+
loaderFn = require(loaderPath);
|
|
742
|
+
if (loaderFn && typeof loaderFn === "object" && typeof loaderFn.default === "function") loaderFn = loaderFn.default;
|
|
743
|
+
} catch {
|
|
744
|
+
return;
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
if (typeof loaderFn !== "function") return;
|
|
748
|
+
if (seen.has(loaderFn)) return;
|
|
749
|
+
seen.add(loaderFn);
|
|
750
|
+
try {
|
|
751
|
+
const loaderThis = {
|
|
752
|
+
async: () => () => {},
|
|
753
|
+
callback: () => {},
|
|
754
|
+
emitError: () => {},
|
|
755
|
+
emitWarning: () => {},
|
|
756
|
+
cacheable: () => {},
|
|
757
|
+
getOptions: () => options ?? {},
|
|
758
|
+
query: options ?? {},
|
|
759
|
+
resourcePath: "",
|
|
760
|
+
resource: "",
|
|
761
|
+
rootContext: root,
|
|
762
|
+
context: root,
|
|
763
|
+
mode: "production"
|
|
764
|
+
};
|
|
765
|
+
loaderFn.call(loaderThis, "");
|
|
766
|
+
} catch {}
|
|
767
|
+
};
|
|
768
|
+
const visit = (rule) => {
|
|
769
|
+
if (!rule || typeof rule !== "object") return;
|
|
770
|
+
if (Array.isArray(rule)) {
|
|
771
|
+
for (const child of rule) visit(child);
|
|
772
|
+
return;
|
|
773
|
+
}
|
|
774
|
+
if (Array.isArray(rule.oneOf)) for (const child of rule.oneOf) visit(child);
|
|
775
|
+
if (Array.isArray(rule.rules)) for (const child of rule.rules) visit(child);
|
|
776
|
+
const uses = Array.isArray(rule.use) ? rule.use : rule.use ? [rule.use] : [];
|
|
777
|
+
for (const use of uses) invokeLoaderEntry(use);
|
|
778
|
+
if (rule.loader !== void 0) invokeLoaderEntry(rule.loader, rule.options);
|
|
779
|
+
};
|
|
780
|
+
for (const rule of rules) visit(rule);
|
|
781
|
+
}
|
|
782
|
+
/**
|
|
634
783
|
* Extract MDX compilation options (remark/rehype/recma plugins) from
|
|
635
784
|
* a Next.js config that uses @next/mdx.
|
|
636
785
|
*
|