vinext 0.0.52 → 0.0.54
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 -1
- package/dist/build/clean-output.d.ts +14 -0
- package/dist/build/clean-output.js +36 -0
- package/dist/build/clean-output.js.map +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.d.ts +6 -2
- package/dist/build/prerender.js +51 -12
- package/dist/build/prerender.js.map +1 -1
- package/dist/build/run-prerender.js +10 -1
- package/dist/build/run-prerender.js.map +1 -1
- package/dist/build/static-export.d.ts +5 -0
- package/dist/build/static-export.js +8 -3
- package/dist/build/static-export.js.map +1 -1
- package/dist/check.js +4 -0
- package/dist/check.js.map +1 -1
- package/dist/cli.js +19 -4
- package/dist/cli.js.map +1 -1
- package/dist/client/instrumentation-client-inject.d.ts +34 -0
- package/dist/client/instrumentation-client-inject.js +57 -0
- package/dist/client/instrumentation-client-inject.js.map +1 -0
- package/dist/client/navigation-runtime.d.ts +16 -2
- package/dist/client/navigation-runtime.js +16 -1
- package/dist/client/navigation-runtime.js.map +1 -1
- package/dist/client/vinext-next-data.d.ts +2 -1
- package/dist/client/vinext-next-data.js.map +1 -1
- package/dist/client/window-next.d.ts +17 -2
- package/dist/client/window-next.js.map +1 -1
- package/dist/cloudflare/tpr.js +1 -1
- package/dist/cloudflare/tpr.js.map +1 -1
- package/dist/config/config-matchers.js +2 -1
- package/dist/config/config-matchers.js.map +1 -1
- package/dist/config/next-config.d.ts +95 -4
- package/dist/config/next-config.js +173 -14
- package/dist/config/next-config.js.map +1 -1
- package/dist/deploy.js +42 -7
- 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 +12 -3
- package/dist/entries/app-rsc-entry.js +41 -8
- 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 +6 -4
- 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 +40 -3
- package/dist/entries/pages-client-entry.js.map +1 -1
- package/dist/entries/pages-server-entry.js +292 -34
- 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 +91 -10
- package/dist/index.js.map +1 -1
- package/dist/plugins/fonts.js +25 -2
- package/dist/plugins/fonts.js.map +1 -1
- 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/routing/route-trie.js +13 -18
- package/dist/routing/route-trie.js.map +1 -1
- package/dist/routing/utils.d.ts +11 -1
- package/dist/routing/utils.js +15 -1
- package/dist/routing/utils.js.map +1 -1
- package/dist/server/api-handler.js +19 -10
- package/dist/server/api-handler.js.map +1 -1
- package/dist/server/app-browser-action-result.d.ts +16 -1
- package/dist/server/app-browser-action-result.js +15 -1
- package/dist/server/app-browser-action-result.js.map +1 -1
- package/dist/server/app-browser-entry.js +47 -28
- package/dist/server/app-browser-entry.js.map +1 -1
- 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-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 +27 -8
- package/dist/server/app-fallback-renderer.js +19 -8
- package/dist/server/app-fallback-renderer.js.map +1 -1
- package/dist/server/app-history-state.js +6 -2
- package/dist/server/app-history-state.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-interception-context-header.d.ts +33 -0
- package/dist/server/app-interception-context-header.js +44 -0
- package/dist/server/app-interception-context-header.js.map +1 -0
- package/dist/server/app-mounted-slots-header.d.ts +19 -0
- package/dist/server/app-mounted-slots-header.js +40 -1
- package/dist/server/app-mounted-slots-header.js.map +1 -1
- package/dist/server/app-optimistic-routing.js +26 -18
- package/dist/server/app-optimistic-routing.js.map +1 -1
- package/dist/server/app-page-boundary-render.d.ts +1 -0
- package/dist/server/app-page-boundary-render.js +2 -0
- package/dist/server/app-page-boundary-render.js.map +1 -1
- package/dist/server/app-page-boundary.d.ts +22 -1
- package/dist/server/app-page-boundary.js +30 -3
- package/dist/server/app-page-boundary.js.map +1 -1
- package/dist/server/app-page-cache.d.ts +9 -3
- package/dist/server/app-page-cache.js +14 -8
- package/dist/server/app-page-cache.js.map +1 -1
- package/dist/server/app-page-dispatch.d.ts +13 -1
- package/dist/server/app-page-dispatch.js +136 -82
- package/dist/server/app-page-dispatch.js.map +1 -1
- package/dist/server/app-page-element-builder.d.ts +2 -1
- package/dist/server/app-page-element-builder.js +17 -30
- package/dist/server/app-page-element-builder.js.map +1 -1
- package/dist/server/app-page-execution.d.ts +1 -0
- package/dist/server/app-page-execution.js +2 -0
- package/dist/server/app-page-execution.js.map +1 -1
- package/dist/server/app-page-head.d.ts +1 -0
- package/dist/server/app-page-head.js +8 -0
- package/dist/server/app-page-head.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-observation.js +1 -1
- package/dist/server/app-page-render.d.ts +9 -1
- package/dist/server/app-page-render.js +8 -2
- 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.d.ts +11 -1
- package/dist/server/app-page-response.js +16 -4
- package/dist/server/app-page-response.js.map +1 -1
- package/dist/server/app-page-route-wiring.d.ts +16 -0
- package/dist/server/app-page-route-wiring.js +25 -10
- package/dist/server/app-page-route-wiring.js.map +1 -1
- package/dist/server/app-page-stream.d.ts +12 -0
- package/dist/server/app-page-stream.js +3 -0
- package/dist/server/app-page-stream.js.map +1 -1
- package/dist/server/app-route-handler-dispatch.d.ts +1 -0
- package/dist/server/app-route-handler-dispatch.js +3 -0
- package/dist/server/app-route-handler-dispatch.js.map +1 -1
- package/dist/server/app-route-handler-execution.d.ts +1 -0
- package/dist/server/app-route-handler-execution.js +1 -0
- package/dist/server/app-route-handler-execution.js.map +1 -1
- package/dist/server/app-route-handler-response.js +38 -6
- package/dist/server/app-route-handler-response.js.map +1 -1
- package/dist/server/app-rsc-handler.d.ts +16 -3
- package/dist/server/app-rsc-handler.js +60 -11
- 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 +6 -4
- package/dist/server/app-rsc-request-normalization.js.map +1 -1
- package/dist/server/app-segment-config.d.ts +4 -1
- package/dist/server/app-segment-config.js +6 -1
- package/dist/server/app-segment-config.js.map +1 -1
- package/dist/server/app-server-action-execution.d.ts +22 -3
- package/dist/server/app-server-action-execution.js +46 -7
- 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 +57 -6
- 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 +25 -1
- package/dist/server/app-ssr-stream.js +237 -19
- package/dist/server/app-ssr-stream.js.map +1 -1
- package/dist/server/app-static-generation.d.ts +1 -0
- package/dist/server/app-static-generation.js +2 -1
- package/dist/server/app-static-generation.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/default-not-found-module.d.ts +20 -0
- package/dist/server/default-not-found-module.js +20 -0
- package/dist/server/default-not-found-module.js.map +1 -0
- package/dist/server/dev-server.d.ts +8 -1
- package/dist/server/dev-server.js +56 -11
- package/dist/server/dev-server.js.map +1 -1
- package/dist/server/headers.d.ts +5 -1
- package/dist/server/headers.js +5 -1
- package/dist/server/headers.js.map +1 -1
- 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/image-optimization.d.ts +13 -4
- package/dist/server/image-optimization.js +15 -4
- package/dist/server/image-optimization.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/middleware.js +1 -1
- package/dist/server/middleware.js.map +1 -1
- package/dist/server/pages-api-route.d.ts +18 -0
- package/dist/server/pages-api-route.js +3 -1
- package/dist/server/pages-api-route.js.map +1 -1
- package/dist/server/pages-body-parser-config.d.ts +60 -0
- package/dist/server/pages-body-parser-config.js +79 -0
- package/dist/server/pages-body-parser-config.js.map +1 -0
- package/dist/server/pages-data-route.js +1 -0
- package/dist/server/pages-data-route.js.map +1 -1
- package/dist/server/pages-default-404.d.ts +31 -0
- package/dist/server/pages-default-404.js +40 -0
- package/dist/server/pages-default-404.js.map +1 -0
- package/dist/server/pages-document-initial-props.d.ts +7 -0
- package/dist/server/pages-document-initial-props.js +14 -0
- package/dist/server/pages-document-initial-props.js.map +1 -0
- package/dist/server/pages-node-compat.d.ts +10 -0
- package/dist/server/pages-node-compat.js +12 -1
- package/dist/server/pages-node-compat.js.map +1 -1
- package/dist/server/pages-page-data.d.ts +40 -0
- package/dist/server/pages-page-data.js +19 -14
- 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 +8 -0
- package/dist/server/pages-page-response.js +21 -11
- 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/prerender-route-params.d.ts +14 -0
- package/dist/server/prerender-route-params.js +94 -0
- package/dist/server/prerender-route-params.js.map +1 -0
- package/dist/server/prod-server.d.ts +3 -23
- package/dist/server/prod-server.js +43 -57
- package/dist/server/prod-server.js.map +1 -1
- package/dist/server/proxy-trust.d.ts +41 -0
- package/dist/server/proxy-trust.js +70 -0
- package/dist/server/proxy-trust.js.map +1 -0
- package/dist/server/request-pipeline.d.ts +3 -3
- package/dist/server/request-pipeline.js +5 -4
- package/dist/server/request-pipeline.js.map +1 -1
- package/dist/server/seed-cache.js +12 -6
- package/dist/server/seed-cache.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/static-file-cache.js +2 -1
- package/dist/server/static-file-cache.js.map +1 -1
- package/dist/server/streaming-metadata.d.ts +5 -0
- package/dist/server/streaming-metadata.js +10 -0
- package/dist/server/streaming-metadata.js.map +1 -0
- package/dist/shims/app-router-scroll-state.d.ts +14 -0
- package/dist/shims/app-router-scroll-state.js +51 -0
- package/dist/shims/app-router-scroll-state.js.map +1 -0
- package/dist/shims/app-router-scroll.d.ts +28 -0
- package/dist/shims/app-router-scroll.js +115 -0
- package/dist/shims/app-router-scroll.js.map +1 -0
- package/dist/shims/before-interactive-context.d.ts +30 -0
- package/dist/shims/before-interactive-context.js +10 -0
- package/dist/shims/before-interactive-context.js.map +1 -0
- package/dist/shims/cache-runtime.d.ts +1 -1
- package/dist/shims/cache-runtime.js +14 -1
- package/dist/shims/cache-runtime.js.map +1 -1
- package/dist/shims/cache.d.ts +6 -0
- package/dist/shims/cache.js +7 -0
- package/dist/shims/cache.js.map +1 -1
- package/dist/shims/default-not-found.d.ts +12 -0
- package/dist/shims/default-not-found.js +61 -0
- package/dist/shims/default-not-found.js.map +1 -0
- package/dist/shims/error.js +3 -0
- package/dist/shims/error.js.map +1 -1
- package/dist/shims/font-local.d.ts +5 -0
- package/dist/shims/font-local.js +6 -2
- package/dist/shims/font-local.js.map +1 -1
- package/dist/shims/head.js +4 -4
- package/dist/shims/head.js.map +1 -1
- package/dist/shims/headers.d.ts +13 -2
- package/dist/shims/headers.js +73 -22
- package/dist/shims/headers.js.map +1 -1
- package/dist/shims/image.d.ts +1 -1
- package/dist/shims/image.js +4 -4
- package/dist/shims/image.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-target.d.ts +58 -0
- package/dist/shims/internal/pages-data-target.js +91 -0
- package/dist/shims/internal/pages-data-target.js.map +1 -0
- package/dist/shims/internal/pages-data-url.d.ts +42 -0
- package/dist/shims/internal/pages-data-url.js +73 -0
- package/dist/shims/internal/pages-data-url.js.map +1 -0
- package/dist/shims/link.d.ts +18 -2
- package/dist/shims/link.js +129 -15
- package/dist/shims/link.js.map +1 -1
- package/dist/shims/metadata.d.ts +9 -7
- package/dist/shims/metadata.js +70 -7
- package/dist/shims/metadata.js.map +1 -1
- package/dist/shims/navigation.d.ts +1 -2
- package/dist/shims/navigation.js +94 -20
- package/dist/shims/navigation.js.map +1 -1
- package/dist/shims/router.d.ts +5 -0
- package/dist/shims/router.js +389 -80
- package/dist/shims/router.js.map +1 -1
- package/dist/shims/script.d.ts +11 -1
- package/dist/shims/script.js +158 -15
- package/dist/shims/script.js.map +1 -1
- package/dist/shims/server.js +1 -0
- package/dist/shims/server.js.map +1 -1
- package/dist/shims/url-utils.d.ts +2 -1
- package/dist/shims/url-utils.js +15 -4
- package/dist/shims/url-utils.js.map +1 -1
- package/dist/utils/html-limited-bots.d.ts +5 -0
- package/dist/utils/html-limited-bots.js +15 -0
- package/dist/utils/html-limited-bots.js.map +1 -0
- 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/query.d.ts +6 -0
- package/dist/utils/query.js +10 -1
- package/dist/utils/query.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { normalizePageExtensions } from "../routing/file-matcher.js";
|
|
2
2
|
import { applyLocaleToRoutes, isExternalUrl } from "./config-matchers.js";
|
|
3
|
+
import { isUnknownRecord } from "../utils/record.js";
|
|
3
4
|
import { PHASE_DEVELOPMENT_SERVER, PHASE_PRODUCTION_BUILD } from "../shims/constants.js";
|
|
5
|
+
import { getHtmlLimitedBotRegex } from "../utils/html-limited-bots.js";
|
|
4
6
|
import { loadTsconfigPathAliasesForRoot } from "./tsconfig-paths.js";
|
|
5
7
|
import { createRequire } from "node:module";
|
|
6
8
|
import fs from "node:fs";
|
|
@@ -398,6 +400,71 @@ function resolveCacheHandlerPathToFilesystem(filePath) {
|
|
|
398
400
|
if (filePath.startsWith("file://")) return fileURLToPath(filePath);
|
|
399
401
|
return filePath;
|
|
400
402
|
}
|
|
403
|
+
function resolveHtmlLimitedBots(value) {
|
|
404
|
+
const source = value instanceof RegExp ? value.source : typeof value === "string" ? value : void 0;
|
|
405
|
+
if (!source) return void 0;
|
|
406
|
+
try {
|
|
407
|
+
getHtmlLimitedBotRegex(source);
|
|
408
|
+
} catch (error) {
|
|
409
|
+
throw new Error("Invalid next.config option \"htmlLimitedBots\": expected a valid regular expression source", { cause: error });
|
|
410
|
+
}
|
|
411
|
+
return source;
|
|
412
|
+
}
|
|
413
|
+
function readOptionalRecord(value) {
|
|
414
|
+
return isUnknownRecord(value) ? value : void 0;
|
|
415
|
+
}
|
|
416
|
+
function readOptionalString(value) {
|
|
417
|
+
return typeof value === "string" ? value : void 0;
|
|
418
|
+
}
|
|
419
|
+
function readOptionalBodySizeLimit(value) {
|
|
420
|
+
return typeof value === "string" || typeof value === "number" ? value : void 0;
|
|
421
|
+
}
|
|
422
|
+
function readStringArray(value) {
|
|
423
|
+
return Array.isArray(value) ? value.filter((item) => typeof item === "string") : [];
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Serialize a `compiler.define` / `compiler.defineServer` map into the
|
|
427
|
+
* Vite-friendly `Record<string, string>` shape where each value is already
|
|
428
|
+
* a JSON-encoded literal of source code. Entries whose values are not a
|
|
429
|
+
* string/number/boolean are silently dropped, matching how Next.js types
|
|
430
|
+
* the API (other shapes are not part of the contract).
|
|
431
|
+
*
|
|
432
|
+
* Mirrors Next.js: packages/next/src/build/define-env.ts (serializeDefineEnv).
|
|
433
|
+
*/
|
|
434
|
+
function serializeCompilerDefine(value) {
|
|
435
|
+
if (!isUnknownRecord(value)) return {};
|
|
436
|
+
const out = {};
|
|
437
|
+
for (const [key, raw] of Object.entries(value)) if (typeof raw === "string" || typeof raw === "number" || typeof raw === "boolean") out[key] = JSON.stringify(raw);
|
|
438
|
+
return out;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Defaults for `experimental.staleTimes` (in seconds), matching Next.js'
|
|
442
|
+
* `config-shared.ts` defaults.
|
|
443
|
+
*/
|
|
444
|
+
const DEFAULT_STALE_TIMES = {
|
|
445
|
+
dynamic: 0,
|
|
446
|
+
static: 300
|
|
447
|
+
};
|
|
448
|
+
/**
|
|
449
|
+
* Parse `experimental.staleTimes` from a raw next.config object.
|
|
450
|
+
*
|
|
451
|
+
* Mirrors Next.js' `build/define-env.ts` parsing logic:
|
|
452
|
+
* - missing / NaN / negative values fall back to the documented defaults
|
|
453
|
+
* (`dynamic: 0`, `static: 300`) — matching Next.js parity and the
|
|
454
|
+
* non-negative guard in `resolvePrefetchCacheTtl`
|
|
455
|
+
* - all values are in seconds
|
|
456
|
+
*
|
|
457
|
+
* @see https://nextjs.org/docs/app/api-reference/config/next-config-js/staleTimes
|
|
458
|
+
*/
|
|
459
|
+
function resolveStaleTimes(experimental) {
|
|
460
|
+
const staleTimes = readOptionalRecord(experimental?.staleTimes);
|
|
461
|
+
const dynamicRaw = Number(staleTimes?.dynamic);
|
|
462
|
+
const staticRaw = Number(staleTimes?.static);
|
|
463
|
+
return {
|
|
464
|
+
dynamic: Number.isFinite(dynamicRaw) && dynamicRaw >= 0 ? dynamicRaw : DEFAULT_STALE_TIMES.dynamic,
|
|
465
|
+
static: Number.isFinite(staticRaw) && staticRaw >= 0 ? staticRaw : DEFAULT_STALE_TIMES.static
|
|
466
|
+
};
|
|
467
|
+
}
|
|
401
468
|
/**
|
|
402
469
|
* Resolve a NextConfig into a fully-resolved ResolvedNextConfig.
|
|
403
470
|
* Awaits async functions for redirects/rewrites/headers.
|
|
@@ -428,8 +495,10 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
428
495
|
allowedDevOrigins: [],
|
|
429
496
|
serverActionsAllowedOrigins: [],
|
|
430
497
|
optimizePackageImports: [],
|
|
498
|
+
inlineCss: false,
|
|
431
499
|
serverActionsBodySizeLimit: 1 * 1024 * 1024,
|
|
432
500
|
expireTime: DEFAULT_EXPIRE_TIME,
|
|
501
|
+
htmlLimitedBots: void 0,
|
|
433
502
|
serverExternalPackages: [],
|
|
434
503
|
cacheHandler: void 0,
|
|
435
504
|
cacheMaxMemorySize: void 0,
|
|
@@ -437,7 +506,14 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
437
506
|
hashSalt: process.env.NEXT_HASH_SALT ?? "",
|
|
438
507
|
buildId,
|
|
439
508
|
deploymentId,
|
|
440
|
-
sassOptions: null
|
|
509
|
+
sassOptions: null,
|
|
510
|
+
removeConsole: false,
|
|
511
|
+
disableOptimizedLoading: false,
|
|
512
|
+
compilerDefine: {},
|
|
513
|
+
compilerDefineServer: {},
|
|
514
|
+
instrumentationClientInject: [],
|
|
515
|
+
clientTraceMetadata: void 0,
|
|
516
|
+
staleTimes: { ...DEFAULT_STALE_TIMES }
|
|
441
517
|
};
|
|
442
518
|
detectNextIntlConfig(root, resolved);
|
|
443
519
|
return resolved;
|
|
@@ -482,20 +558,23 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
482
558
|
...webpackProbe.aliases
|
|
483
559
|
};
|
|
484
560
|
const allowedDevOrigins = Array.isArray(config.allowedDevOrigins) ? config.allowedDevOrigins : [];
|
|
485
|
-
const experimental = config.experimental;
|
|
486
|
-
const serverActionsConfig = experimental?.serverActions;
|
|
487
|
-
const serverActionsAllowedOrigins =
|
|
488
|
-
const serverActionsBodySizeLimit = parseBodySizeLimit(serverActionsConfig?.bodySizeLimit);
|
|
489
|
-
const hashSalt = (experimental?.outputHashSalt ?? "") + (process.env.NEXT_HASH_SALT ?? "");
|
|
561
|
+
const experimental = readOptionalRecord(config.experimental);
|
|
562
|
+
const serverActionsConfig = readOptionalRecord(experimental?.serverActions);
|
|
563
|
+
const serverActionsAllowedOrigins = readStringArray(serverActionsConfig?.allowedOrigins);
|
|
564
|
+
const serverActionsBodySizeLimit = parseBodySizeLimit(readOptionalBodySizeLimit(serverActionsConfig?.bodySizeLimit));
|
|
565
|
+
const hashSalt = (readOptionalString(experimental?.outputHashSalt) ?? "") + (process.env.NEXT_HASH_SALT ?? "");
|
|
566
|
+
const htmlLimitedBots = resolveHtmlLimitedBots(config.htmlLimitedBots);
|
|
490
567
|
const rawOptimize = experimental?.optimizePackageImports;
|
|
491
568
|
const optimizePackageImports = Array.isArray(rawOptimize) ? rawOptimize.filter((x) => typeof x === "string") : [];
|
|
492
|
-
const
|
|
493
|
-
const
|
|
569
|
+
const inlineCss = experimental?.inlineCss === true;
|
|
570
|
+
const topLevelServerExternalPackages = Array.isArray(config.serverExternalPackages) ? readStringArray(config.serverExternalPackages) : void 0;
|
|
571
|
+
const legacyServerComponentsExternal = readStringArray(experimental?.serverComponentsExternalPackages);
|
|
572
|
+
const serverExternalPackages = topLevelServerExternalPackages ?? legacyServerComponentsExternal;
|
|
494
573
|
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.");
|
|
495
574
|
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).");
|
|
496
575
|
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");
|
|
497
576
|
else console.warn("[vinext] next.config option \"webpack\" is not yet supported and will be ignored");
|
|
498
|
-
const output = config.output ?? "";
|
|
577
|
+
const output = readOptionalString(config.output) ?? "";
|
|
499
578
|
if (output && output !== "export" && output !== "standalone") console.warn(`[vinext] Unknown output mode "${output}", ignoring`);
|
|
500
579
|
const pageExtensions = normalizePageExtensions(config.pageExtensions);
|
|
501
580
|
let i18n = null;
|
|
@@ -525,6 +604,7 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
525
604
|
trailingSlash: config.trailingSlash ?? false,
|
|
526
605
|
output: output === "export" || output === "standalone" ? output : "",
|
|
527
606
|
pageExtensions,
|
|
607
|
+
instrumentationClientInject: Array.isArray(config.instrumentationClientInject) ? config.instrumentationClientInject.filter((x) => typeof x === "string") : [],
|
|
528
608
|
cacheComponents: config.cacheComponents ?? false,
|
|
529
609
|
redirects,
|
|
530
610
|
rewrites,
|
|
@@ -536,8 +616,10 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
536
616
|
allowedDevOrigins,
|
|
537
617
|
serverActionsAllowedOrigins,
|
|
538
618
|
optimizePackageImports,
|
|
619
|
+
inlineCss,
|
|
539
620
|
serverActionsBodySizeLimit,
|
|
540
621
|
expireTime: typeof config.expireTime === "number" ? config.expireTime : DEFAULT_EXPIRE_TIME,
|
|
622
|
+
htmlLimitedBots,
|
|
541
623
|
serverExternalPackages,
|
|
542
624
|
cacheHandler,
|
|
543
625
|
cacheMaxMemorySize,
|
|
@@ -545,7 +627,13 @@ async function resolveNextConfig(config, root = process.cwd()) {
|
|
|
545
627
|
hashSalt,
|
|
546
628
|
buildId,
|
|
547
629
|
deploymentId,
|
|
548
|
-
sassOptions: config.sassOptions
|
|
630
|
+
sassOptions: readOptionalRecord(config.sassOptions) ?? null,
|
|
631
|
+
removeConsole: config.compiler?.removeConsole === true ? true : isUnknownRecord(config.compiler?.removeConsole) ? { exclude: readStringArray(config.compiler.removeConsole.exclude) } : false,
|
|
632
|
+
disableOptimizedLoading: experimental?.disableOptimizedLoading === true,
|
|
633
|
+
compilerDefine: serializeCompilerDefine(config.compiler?.define),
|
|
634
|
+
compilerDefineServer: serializeCompilerDefine(config.compiler?.defineServer),
|
|
635
|
+
clientTraceMetadata: Array.isArray(experimental?.clientTraceMetadata) ? experimental.clientTraceMetadata.filter((value) => typeof value === "string") : void 0,
|
|
636
|
+
staleTimes: resolveStaleTimes(experimental)
|
|
549
637
|
};
|
|
550
638
|
detectNextIntlConfig(root, resolved);
|
|
551
639
|
if (resolved.basePath !== "" && resolved.basePath !== "/" && resolved.assetPrefix === "") resolved.assetPrefix = resolved.basePath;
|
|
@@ -561,11 +649,11 @@ function normalizeAliasEntries(aliases, root) {
|
|
|
561
649
|
return normalized;
|
|
562
650
|
}
|
|
563
651
|
function extractTurboAliases(config, root) {
|
|
564
|
-
const experimentalTurbo = config.experimental?.turbo;
|
|
565
|
-
const topLevelTurbopack = config.turbopack;
|
|
652
|
+
const experimentalTurbo = readOptionalRecord(readOptionalRecord(config.experimental)?.turbo);
|
|
653
|
+
const topLevelTurbopack = readOptionalRecord(config.turbopack);
|
|
566
654
|
return {
|
|
567
|
-
...normalizeAliasEntries(experimentalTurbo?.resolveAlias, root),
|
|
568
|
-
...normalizeAliasEntries(topLevelTurbopack?.resolveAlias, root)
|
|
655
|
+
...normalizeAliasEntries(readOptionalRecord(experimentalTurbo?.resolveAlias), root),
|
|
656
|
+
...normalizeAliasEntries(readOptionalRecord(topLevelTurbopack?.resolveAlias), root)
|
|
569
657
|
};
|
|
570
658
|
}
|
|
571
659
|
async function probeWebpackConfig(config, root) {
|
|
@@ -589,6 +677,7 @@ async function probeWebpackConfig(config, root) {
|
|
|
589
677
|
try {
|
|
590
678
|
const finalConfig = await config.webpack(mockConfig, mockOptions) ?? mockConfig;
|
|
591
679
|
const rules = finalConfig.module?.rules ?? mockModuleRules;
|
|
680
|
+
invokeLoaderSideEffects(rules, root);
|
|
592
681
|
return {
|
|
593
682
|
aliases: normalizeAliasEntries(finalConfig.resolve?.alias, root),
|
|
594
683
|
mdx: extractMdxOptionsFromRules(rules)
|
|
@@ -601,6 +690,76 @@ async function probeWebpackConfig(config, root) {
|
|
|
601
690
|
}
|
|
602
691
|
}
|
|
603
692
|
/**
|
|
693
|
+
* Walk webpack module rules and invoke each referenced loader once with a
|
|
694
|
+
* dummy source string. Loaders that mutate `process.env` at compile time (a
|
|
695
|
+
* pattern supported by Next.js' webpack pipeline — see issue #1500) get a
|
|
696
|
+
* chance to land their mutations before vinext computes its defines.
|
|
697
|
+
* Failures are swallowed: a loader throwing on dummy input must not break
|
|
698
|
+
* the build, since vinext doesn't actually use the loader's transform output.
|
|
699
|
+
*/
|
|
700
|
+
function invokeLoaderSideEffects(rules, root) {
|
|
701
|
+
const require = createRequire(path.join(root, "package.json"));
|
|
702
|
+
const seen = /* @__PURE__ */ new Set();
|
|
703
|
+
const invokeLoaderEntry = (entry, ruleOptions) => {
|
|
704
|
+
if (!entry) return;
|
|
705
|
+
let loaderPath;
|
|
706
|
+
let loaderFn;
|
|
707
|
+
let options = ruleOptions;
|
|
708
|
+
if (typeof entry === "string") loaderPath = entry;
|
|
709
|
+
else if (typeof entry === "function") loaderFn = entry;
|
|
710
|
+
else if (typeof entry === "object") {
|
|
711
|
+
const e = entry;
|
|
712
|
+
if (typeof e.loader === "string") loaderPath = e.loader;
|
|
713
|
+
else if (typeof e.loader === "function") loaderFn = e.loader;
|
|
714
|
+
if (e.options !== void 0) options = e.options;
|
|
715
|
+
}
|
|
716
|
+
if (loaderPath !== void 0) {
|
|
717
|
+
if (seen.has(loaderPath)) return;
|
|
718
|
+
seen.add(loaderPath);
|
|
719
|
+
if (loaderPath.includes("next-babel-loader") || loaderPath.includes("mdx") || loaderPath.startsWith("next/dist/build/webpack")) return;
|
|
720
|
+
try {
|
|
721
|
+
loaderFn = require(loaderPath);
|
|
722
|
+
if (loaderFn && typeof loaderFn === "object" && typeof loaderFn.default === "function") loaderFn = loaderFn.default;
|
|
723
|
+
} catch {
|
|
724
|
+
return;
|
|
725
|
+
}
|
|
726
|
+
}
|
|
727
|
+
if (typeof loaderFn !== "function") return;
|
|
728
|
+
if (seen.has(loaderFn)) return;
|
|
729
|
+
seen.add(loaderFn);
|
|
730
|
+
try {
|
|
731
|
+
const loaderThis = {
|
|
732
|
+
async: () => () => {},
|
|
733
|
+
callback: () => {},
|
|
734
|
+
emitError: () => {},
|
|
735
|
+
emitWarning: () => {},
|
|
736
|
+
cacheable: () => {},
|
|
737
|
+
getOptions: () => options ?? {},
|
|
738
|
+
query: options ?? {},
|
|
739
|
+
resourcePath: "",
|
|
740
|
+
resource: "",
|
|
741
|
+
rootContext: root,
|
|
742
|
+
context: root,
|
|
743
|
+
mode: "production"
|
|
744
|
+
};
|
|
745
|
+
loaderFn.call(loaderThis, "");
|
|
746
|
+
} catch {}
|
|
747
|
+
};
|
|
748
|
+
const visit = (rule) => {
|
|
749
|
+
if (!rule || typeof rule !== "object") return;
|
|
750
|
+
if (Array.isArray(rule)) {
|
|
751
|
+
for (const child of rule) visit(child);
|
|
752
|
+
return;
|
|
753
|
+
}
|
|
754
|
+
if (Array.isArray(rule.oneOf)) for (const child of rule.oneOf) visit(child);
|
|
755
|
+
if (Array.isArray(rule.rules)) for (const child of rule.rules) visit(child);
|
|
756
|
+
const uses = Array.isArray(rule.use) ? rule.use : rule.use ? [rule.use] : [];
|
|
757
|
+
for (const use of uses) invokeLoaderEntry(use);
|
|
758
|
+
if (rule.loader !== void 0) invokeLoaderEntry(rule.loader, rule.options);
|
|
759
|
+
};
|
|
760
|
+
for (const rule of rules) visit(rule);
|
|
761
|
+
}
|
|
762
|
+
/**
|
|
604
763
|
* Extract MDX compilation options (remark/rehype/recma plugins) from
|
|
605
764
|
* a Next.js config that uses @next/mdx.
|
|
606
765
|
*
|