@vercel/next 4.15.1 → 4.15.3
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/dist/index.js +147 -43
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -10822,13 +10822,13 @@ var import_escape_string_regexp3 = __toESM(require_escape_string_regexp());
|
|
|
10822
10822
|
var import_find_up = __toESM(require_find_up());
|
|
10823
10823
|
var import_fs_extra6 = __toESM(require_lib2());
|
|
10824
10824
|
var import_path6 = __toESM(require("path"));
|
|
10825
|
-
var
|
|
10825
|
+
var import_semver5 = __toESM(require_semver());
|
|
10826
10826
|
var import_url2 = __toESM(require("url"));
|
|
10827
10827
|
|
|
10828
10828
|
// src/create-serverless-config.ts
|
|
10829
10829
|
var import_fs_extra4 = __toESM(require_lib2());
|
|
10830
10830
|
var import_path4 = __toESM(require("path"));
|
|
10831
|
-
var
|
|
10831
|
+
var import_semver3 = __toESM(require_semver());
|
|
10832
10832
|
|
|
10833
10833
|
// src/utils.ts
|
|
10834
10834
|
var import_build_utils = require("@vercel/build-utils");
|
|
@@ -10836,7 +10836,7 @@ var import_async_sema = __toESM(require_lib());
|
|
|
10836
10836
|
var import_buffer_crc32 = __toESM(require_buffer_crc32());
|
|
10837
10837
|
var import_fs_extra3 = __toESM(require_lib2());
|
|
10838
10838
|
var import_path3 = __toESM(require("path"));
|
|
10839
|
-
var
|
|
10839
|
+
var import_semver2 = __toESM(require_semver());
|
|
10840
10840
|
var import_url = __toESM(require("url"));
|
|
10841
10841
|
var import_module = require("module");
|
|
10842
10842
|
var import_escape_string_regexp = __toESM(require_escape_string_regexp());
|
|
@@ -11112,6 +11112,107 @@ function getAppRouterPathnameFilesMap(files) {
|
|
|
11112
11112
|
return appPathnameFilesMap;
|
|
11113
11113
|
}
|
|
11114
11114
|
|
|
11115
|
+
// src/is-dynamic-route.ts
|
|
11116
|
+
var import_semver = __toESM(require_semver());
|
|
11117
|
+
function ensureLeadingSlash(path6) {
|
|
11118
|
+
return path6.startsWith("/") ? path6 : `/${path6}`;
|
|
11119
|
+
}
|
|
11120
|
+
function isGroupSegment(segment) {
|
|
11121
|
+
return segment[0] === "(" && segment.endsWith(")");
|
|
11122
|
+
}
|
|
11123
|
+
function normalizeAppPath2(route) {
|
|
11124
|
+
return ensureLeadingSlash(
|
|
11125
|
+
route.split("/").reduce((pathname, segment, index, segments) => {
|
|
11126
|
+
if (!segment) {
|
|
11127
|
+
return pathname;
|
|
11128
|
+
}
|
|
11129
|
+
if (isGroupSegment(segment)) {
|
|
11130
|
+
return pathname;
|
|
11131
|
+
}
|
|
11132
|
+
if (segment[0] === "@") {
|
|
11133
|
+
return pathname;
|
|
11134
|
+
}
|
|
11135
|
+
if ((segment === "page" || segment === "route") && index === segments.length - 1) {
|
|
11136
|
+
return pathname;
|
|
11137
|
+
}
|
|
11138
|
+
return `${pathname}/${segment}`;
|
|
11139
|
+
}, "")
|
|
11140
|
+
);
|
|
11141
|
+
}
|
|
11142
|
+
var INTERCEPTION_ROUTE_MARKERS = [
|
|
11143
|
+
"(..)(..)",
|
|
11144
|
+
"(.)",
|
|
11145
|
+
"(..)",
|
|
11146
|
+
"(...)"
|
|
11147
|
+
];
|
|
11148
|
+
function isInterceptionRouteAppPath(path6) {
|
|
11149
|
+
return path6.split("/").some(
|
|
11150
|
+
(segment) => INTERCEPTION_ROUTE_MARKERS.some((m) => segment.startsWith(m))
|
|
11151
|
+
);
|
|
11152
|
+
}
|
|
11153
|
+
function extractInterceptionRouteInformation(path6) {
|
|
11154
|
+
let interceptingRoute;
|
|
11155
|
+
let marker;
|
|
11156
|
+
let interceptedRoute;
|
|
11157
|
+
for (const segment of path6.split("/")) {
|
|
11158
|
+
marker = INTERCEPTION_ROUTE_MARKERS.find((m) => segment.startsWith(m));
|
|
11159
|
+
if (marker) {
|
|
11160
|
+
[interceptingRoute, interceptedRoute] = path6.split(marker, 2);
|
|
11161
|
+
break;
|
|
11162
|
+
}
|
|
11163
|
+
}
|
|
11164
|
+
if (!interceptingRoute || !marker || !interceptedRoute) {
|
|
11165
|
+
throw new Error(
|
|
11166
|
+
`Invalid interception route: ${path6}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`
|
|
11167
|
+
);
|
|
11168
|
+
}
|
|
11169
|
+
interceptingRoute = normalizeAppPath2(interceptingRoute);
|
|
11170
|
+
switch (marker) {
|
|
11171
|
+
case "(.)":
|
|
11172
|
+
if (interceptingRoute === "/") {
|
|
11173
|
+
interceptedRoute = `/${interceptedRoute}`;
|
|
11174
|
+
} else {
|
|
11175
|
+
interceptedRoute = interceptingRoute + "/" + interceptedRoute;
|
|
11176
|
+
}
|
|
11177
|
+
break;
|
|
11178
|
+
case "(..)":
|
|
11179
|
+
if (interceptingRoute === "/") {
|
|
11180
|
+
throw new Error(
|
|
11181
|
+
`Invalid interception route: ${path6}. Cannot use (..) marker at the root level, use (.) instead.`
|
|
11182
|
+
);
|
|
11183
|
+
}
|
|
11184
|
+
interceptedRoute = interceptingRoute.split("/").slice(0, -1).concat(interceptedRoute).join("/");
|
|
11185
|
+
break;
|
|
11186
|
+
case "(...)":
|
|
11187
|
+
interceptedRoute = "/" + interceptedRoute;
|
|
11188
|
+
break;
|
|
11189
|
+
case "(..)(..)": {
|
|
11190
|
+
const splitInterceptingRoute = interceptingRoute.split("/");
|
|
11191
|
+
if (splitInterceptingRoute.length <= 2) {
|
|
11192
|
+
throw new Error(
|
|
11193
|
+
`Invalid interception route: ${path6}. Cannot use (..)(..) marker at the root level or one level up.`
|
|
11194
|
+
);
|
|
11195
|
+
}
|
|
11196
|
+
interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join("/");
|
|
11197
|
+
break;
|
|
11198
|
+
}
|
|
11199
|
+
default:
|
|
11200
|
+
throw new Error("Invariant: unexpected marker");
|
|
11201
|
+
}
|
|
11202
|
+
return { interceptingRoute, interceptedRoute };
|
|
11203
|
+
}
|
|
11204
|
+
var TEST_DYNAMIC_ROUTE = /\/\[[^\/]+?\](?=\/|$)/;
|
|
11205
|
+
function isDynamicRoute(route, nextVersion) {
|
|
11206
|
+
const coerced = nextVersion ? import_semver.default.coerce(nextVersion) : null;
|
|
11207
|
+
if (coerced && import_semver.default.gte(coerced, "16.0.0", {
|
|
11208
|
+
loose: true,
|
|
11209
|
+
includePrerelease: true
|
|
11210
|
+
}) && isInterceptionRouteAppPath(route)) {
|
|
11211
|
+
route = extractInterceptionRouteInformation(route).interceptedRoute;
|
|
11212
|
+
}
|
|
11213
|
+
return TEST_DYNAMIC_ROUTE.test(ensureLeadingSlash(route));
|
|
11214
|
+
}
|
|
11215
|
+
|
|
11115
11216
|
// src/utils.ts
|
|
11116
11217
|
var require_ = (0, import_module.createRequire)(__filename);
|
|
11117
11218
|
var RSC_CONTENT_TYPE = "x-component";
|
|
@@ -11125,11 +11226,6 @@ function getMaxUncompressedLambdaSize(runtime) {
|
|
|
11125
11226
|
var skipDefaultLocaleRewrite = Boolean(
|
|
11126
11227
|
process.env.NEXT_EXPERIMENTAL_DEFER_DEFAULT_LOCALE_REWRITE
|
|
11127
11228
|
);
|
|
11128
|
-
var TEST_DYNAMIC_ROUTE = /\/\[[^\/]+?\](?=\/|$)/;
|
|
11129
|
-
function isDynamicRoute(route) {
|
|
11130
|
-
route = route.startsWith("/") ? route : `/${route}`;
|
|
11131
|
-
return TEST_DYNAMIC_ROUTE.test(route);
|
|
11132
|
-
}
|
|
11133
11229
|
function validateEntrypoint(entrypoint) {
|
|
11134
11230
|
if (!/package\.json$/.exec(entrypoint) && !/next\.config\.js$/.exec(entrypoint)) {
|
|
11135
11231
|
throw new import_build_utils.NowBuildError({
|
|
@@ -11221,7 +11317,7 @@ function normalizePage(page) {
|
|
|
11221
11317
|
return page;
|
|
11222
11318
|
}
|
|
11223
11319
|
async function getRoutesManifest(entryPath, outputDirectory, nextVersion) {
|
|
11224
|
-
const shouldHaveManifest = nextVersion &&
|
|
11320
|
+
const shouldHaveManifest = nextVersion && import_semver2.default.gte(nextVersion, "9.1.4-canary.0");
|
|
11225
11321
|
if (!shouldHaveManifest)
|
|
11226
11322
|
return;
|
|
11227
11323
|
const pathRoutesManifest = import_path3.default.join(
|
|
@@ -11511,7 +11607,7 @@ async function getImagesManifest(entryPath, outputDirectory) {
|
|
|
11511
11607
|
}
|
|
11512
11608
|
return import_fs_extra3.default.readJson(pathImagesManifest);
|
|
11513
11609
|
}
|
|
11514
|
-
function filterStaticPages(staticPageFiles, dynamicPages, entryDirectory, htmlContentType2, prerenderManifest, routesManifest) {
|
|
11610
|
+
function filterStaticPages(staticPageFiles, dynamicPages, entryDirectory, htmlContentType2, prerenderManifest, nextVersion, routesManifest) {
|
|
11515
11611
|
const staticPages = {};
|
|
11516
11612
|
Object.keys(staticPageFiles).forEach((page) => {
|
|
11517
11613
|
const pathname = page.replace(/\.html$/, "");
|
|
@@ -11525,7 +11621,7 @@ function filterStaticPages(staticPageFiles, dynamicPages, entryDirectory, htmlCo
|
|
|
11525
11621
|
const staticRoute = import_path3.default.posix.join(entryDirectory, pathname);
|
|
11526
11622
|
staticPages[staticRoute] = staticPageFiles[page];
|
|
11527
11623
|
staticPages[staticRoute].contentType = htmlContentType2;
|
|
11528
|
-
if (isDynamicRoute(pathname)) {
|
|
11624
|
+
if (isDynamicRoute(pathname, nextVersion)) {
|
|
11529
11625
|
dynamicPages.push(routeName);
|
|
11530
11626
|
return;
|
|
11531
11627
|
}
|
|
@@ -11971,7 +12067,7 @@ async function getSourceFilePathFromPage({
|
|
|
11971
12067
|
}) {
|
|
11972
12068
|
const usesSrcDir = await usesSrcDirectory(workPath);
|
|
11973
12069
|
const extensionsToTry = pageExtensions || ["js", "jsx", "ts", "tsx"];
|
|
11974
|
-
const isNextJs16Plus = nextVersion &&
|
|
12070
|
+
const isNextJs16Plus = nextVersion && import_semver2.default.gte(nextVersion, "16.0.0");
|
|
11975
12071
|
const pagesToCheck = page === "middleware" && isNextJs16Plus ? ["proxy", "middleware"] : [page];
|
|
11976
12072
|
for (const pageToCheck of pagesToCheck) {
|
|
11977
12073
|
for (const pageType of [
|
|
@@ -12374,7 +12470,8 @@ var onPrerenderRoute = (prerenderRouteArgs) => async (routeKey, {
|
|
|
12374
12470
|
isAppPPREnabled,
|
|
12375
12471
|
isAppClientSegmentCacheEnabled,
|
|
12376
12472
|
isAppClientParamParsingEnabled,
|
|
12377
|
-
appPathnameFilesMap
|
|
12473
|
+
appPathnameFilesMap,
|
|
12474
|
+
nextVersion
|
|
12378
12475
|
} = prerenderRouteArgs;
|
|
12379
12476
|
if (isBlocking && isFallback) {
|
|
12380
12477
|
throw new import_build_utils.NowBuildError({
|
|
@@ -12663,7 +12760,7 @@ var onPrerenderRoute = (prerenderRouteArgs) => async (routeKey, {
|
|
|
12663
12760
|
const route = routesManifest?.dynamicRoutes.find(
|
|
12664
12761
|
(r) => r.page === pageKey && !("isMiddleware" in r)
|
|
12665
12762
|
);
|
|
12666
|
-
const isDynamic = isDynamicRoute(routeKey);
|
|
12763
|
+
const isDynamic = isDynamicRoute(routeKey, nextVersion);
|
|
12667
12764
|
const routeKeys = route?.routeKeys;
|
|
12668
12765
|
let allowQuery;
|
|
12669
12766
|
if (isEmptyAllowQueryForPrendered) {
|
|
@@ -12673,7 +12770,7 @@ var onPrerenderRoute = (prerenderRouteArgs) => async (routeKey, {
|
|
|
12673
12770
|
allowQuery = Object.values(routeKeys);
|
|
12674
12771
|
}
|
|
12675
12772
|
} else {
|
|
12676
|
-
const isDynamic2 = isDynamicRoute(pageKey);
|
|
12773
|
+
const isDynamic2 = isDynamicRoute(pageKey, nextVersion);
|
|
12677
12774
|
if (routeKeys) {
|
|
12678
12775
|
allowQuery = Object.values(routeKeys);
|
|
12679
12776
|
} else if (!isDynamic2) {
|
|
@@ -13018,7 +13115,7 @@ function normalizeIndexOutput(outputName, isServerMode) {
|
|
|
13018
13115
|
return outputName;
|
|
13019
13116
|
}
|
|
13020
13117
|
function getNextServerPath(nextVersion) {
|
|
13021
|
-
return
|
|
13118
|
+
return import_semver2.default.gte(nextVersion, "v11.0.2-canary.4") ? "next/dist/server" : "next/dist/next-server/server";
|
|
13022
13119
|
}
|
|
13023
13120
|
function pathnameToOutputName(entryDirectory, pathname) {
|
|
13024
13121
|
if (pathname === "/") {
|
|
@@ -13416,7 +13513,7 @@ async function getMiddlewareBundle({
|
|
|
13416
13513
|
if (isCorrectMiddlewareOrder) {
|
|
13417
13514
|
route.override = true;
|
|
13418
13515
|
}
|
|
13419
|
-
if (routesManifest.version > 3 && isDynamicRoute(worker.page)) {
|
|
13516
|
+
if (routesManifest.version > 3 && isDynamicRoute(worker.page, nextVersion)) {
|
|
13420
13517
|
source.dynamicRouteMap.set(worker.page, route);
|
|
13421
13518
|
} else {
|
|
13422
13519
|
source.staticRoutes.push(route);
|
|
@@ -13746,7 +13843,7 @@ async function createServerlessConfig(workPath, entryPath, nextVersion) {
|
|
|
13746
13843
|
let target = "serverless";
|
|
13747
13844
|
if (nextVersion) {
|
|
13748
13845
|
try {
|
|
13749
|
-
if (
|
|
13846
|
+
if (import_semver3.default.gte(nextVersion, ExperimentalTraceVersion)) {
|
|
13750
13847
|
target = "experimental-serverless-trace";
|
|
13751
13848
|
}
|
|
13752
13849
|
} catch (_ignored) {
|
|
@@ -14118,7 +14215,7 @@ var legacy_versions_default = [
|
|
|
14118
14215
|
|
|
14119
14216
|
// src/server-build.ts
|
|
14120
14217
|
var import_path5 = __toESM(require("path"));
|
|
14121
|
-
var
|
|
14218
|
+
var import_semver4 = __toESM(require_semver());
|
|
14122
14219
|
var import_async_sema2 = __toESM(require_lib());
|
|
14123
14220
|
var import_build_utils2 = require("@vercel/build-utils");
|
|
14124
14221
|
var import_nft = require("@vercel/nft");
|
|
@@ -14220,7 +14317,7 @@ async function serverBuild({
|
|
|
14220
14317
|
const prerenders = {};
|
|
14221
14318
|
const lambdaPageKeys = Object.keys(lambdaPages);
|
|
14222
14319
|
const pageBuildTraces = await (0, import_build_utils2.glob)("**/*.js.nft.json", pagesDir);
|
|
14223
|
-
const isEmptyAllowQueryForPrendered =
|
|
14320
|
+
const isEmptyAllowQueryForPrendered = import_semver4.default.gte(
|
|
14224
14321
|
nextVersion,
|
|
14225
14322
|
EMPTY_ALLOW_QUERY_FOR_PRERENDERED_VERSION
|
|
14226
14323
|
);
|
|
@@ -14336,15 +14433,15 @@ async function serverBuild({
|
|
|
14336
14433
|
modifyRewrites(afterFilesRewrites, true);
|
|
14337
14434
|
modifyRewrites(fallbackRewrites);
|
|
14338
14435
|
}
|
|
14339
|
-
const isCorrectNotFoundRoutes =
|
|
14436
|
+
const isCorrectNotFoundRoutes = import_semver4.default.gte(
|
|
14340
14437
|
nextVersion,
|
|
14341
14438
|
CORRECT_NOT_FOUND_ROUTES_VERSION
|
|
14342
14439
|
);
|
|
14343
|
-
const isCorrectMiddlewareOrder =
|
|
14440
|
+
const isCorrectMiddlewareOrder = import_semver4.default.gte(
|
|
14344
14441
|
nextVersion,
|
|
14345
14442
|
CORRECT_MIDDLEWARE_ORDER_VERSION
|
|
14346
14443
|
);
|
|
14347
|
-
const isCorrectManifests = !experimentalAllowBundling &&
|
|
14444
|
+
const isCorrectManifests = !experimentalAllowBundling && import_semver4.default.gte(nextVersion, CORRECTED_MANIFESTS_VERSION);
|
|
14348
14445
|
let hasStatic500 = !!staticPages[import_path5.default.posix.join(entryDirectory, "500")];
|
|
14349
14446
|
if (lambdaPageKeys.length === 0) {
|
|
14350
14447
|
throw new import_build_utils2.NowBuildError({
|
|
@@ -14415,7 +14512,7 @@ async function serverBuild({
|
|
|
14415
14512
|
let initialFileReasons;
|
|
14416
14513
|
let nextServerBuildTrace;
|
|
14417
14514
|
let instrumentationHookBuildTrace;
|
|
14418
|
-
const useBundledServer =
|
|
14515
|
+
const useBundledServer = import_semver4.default.gte(nextVersion, BUNDLED_SERVER_NEXT_VERSION) && process.env.VERCEL_NEXT_BUNDLED_SERVER === "1";
|
|
14419
14516
|
if (useBundledServer) {
|
|
14420
14517
|
(0, import_build_utils2.debug)("Using bundled Next.js server");
|
|
14421
14518
|
}
|
|
@@ -14527,7 +14624,7 @@ async function serverBuild({
|
|
|
14527
14624
|
return;
|
|
14528
14625
|
}
|
|
14529
14626
|
const normalizedPathname = normalizePage(pathname);
|
|
14530
|
-
if (isDynamicRoute(normalizedPathname)) {
|
|
14627
|
+
if (isDynamicRoute(normalizedPathname, nextVersion)) {
|
|
14531
14628
|
dynamicPages.push(normalizedPathname);
|
|
14532
14629
|
}
|
|
14533
14630
|
if (lambdaAppPaths[page]) {
|
|
@@ -14986,7 +15083,7 @@ ${JSON.stringify(
|
|
|
14986
15083
|
}
|
|
14987
15084
|
case "server/pages-manifest.json": {
|
|
14988
15085
|
for (const key of Object.keys(manifestData)) {
|
|
14989
|
-
if (isDynamicRoute(key) && !normalizedPages.has(key)) {
|
|
15086
|
+
if (isDynamicRoute(key, nextVersion) && !normalizedPages.has(key)) {
|
|
14990
15087
|
delete manifestData[key];
|
|
14991
15088
|
}
|
|
14992
15089
|
}
|
|
@@ -14995,7 +15092,7 @@ ${JSON.stringify(
|
|
|
14995
15092
|
case "server/app-paths-manifest.json": {
|
|
14996
15093
|
for (const key of Object.keys(manifestData)) {
|
|
14997
15094
|
const normalizedKey = appPathRoutesManifest?.[key] || key.replace(/(^|\/)(page|route)$/, "");
|
|
14998
|
-
if (isDynamicRoute(normalizedKey) && !normalizedPages.has(normalizedKey)) {
|
|
15095
|
+
if (isDynamicRoute(normalizedKey, nextVersion) && !normalizedPages.has(normalizedKey)) {
|
|
14999
15096
|
delete manifestData[key];
|
|
15000
15097
|
}
|
|
15001
15098
|
}
|
|
@@ -15249,7 +15346,8 @@ ${JSON.stringify(
|
|
|
15249
15346
|
isAppPPREnabled,
|
|
15250
15347
|
isAppClientSegmentCacheEnabled,
|
|
15251
15348
|
isAppClientParamParsingEnabled,
|
|
15252
|
-
appPathnameFilesMap: getAppRouterPathnameFilesMap(files)
|
|
15349
|
+
appPathnameFilesMap: getAppRouterPathnameFilesMap(files),
|
|
15350
|
+
nextVersion
|
|
15253
15351
|
});
|
|
15254
15352
|
await Promise.all(
|
|
15255
15353
|
Object.keys(prerenderManifest.staticRoutes).map(
|
|
@@ -15283,7 +15381,7 @@ ${JSON.stringify(
|
|
|
15283
15381
|
// we can't delete dynamic app route lambdas just because
|
|
15284
15382
|
// they are in the prerender manifest since a dynamic
|
|
15285
15383
|
// route can have some prerendered paths and the rest SSR
|
|
15286
|
-
inversedAppPathManifest[route] && isDynamicRoute(route)
|
|
15384
|
+
inversedAppPathManifest[route] && isDynamicRoute(route, nextVersion)
|
|
15287
15385
|
) {
|
|
15288
15386
|
return;
|
|
15289
15387
|
}
|
|
@@ -15292,7 +15390,8 @@ ${JSON.stringify(
|
|
|
15292
15390
|
true
|
|
15293
15391
|
)];
|
|
15294
15392
|
});
|
|
15295
|
-
const
|
|
15393
|
+
const hasPagesRouter = routesManifest.appType ? routesManifest.appType === "pages" || routesManifest.appType === "hybrid" : true;
|
|
15394
|
+
const isNextDataServerResolving = hasPagesRouter && (middleware.staticRoutes.length > 0 || nodeMiddleware) && import_semver4.default.gte(nextVersion, NEXT_DATA_MIDDLEWARE_RESOLVING_VERSION);
|
|
15296
15395
|
const dynamicRoutes = await getDynamicRoutes({
|
|
15297
15396
|
entryPath,
|
|
15298
15397
|
entryDirectory,
|
|
@@ -15876,7 +15975,7 @@ ${JSON.stringify(
|
|
|
15876
15975
|
] : [],
|
|
15877
15976
|
// normalize _next/data URL before processing rewrites
|
|
15878
15977
|
...normalizeNextDataRoute(),
|
|
15879
|
-
...!isNextDataServerResolving ? [
|
|
15978
|
+
...!isNextDataServerResolving && hasPagesRouter ? [
|
|
15880
15979
|
// No-op _next/data rewrite to trigger handle: 'rewrites' and then 404
|
|
15881
15980
|
// if no match to prevent rewriting _next/data unexpectedly
|
|
15882
15981
|
{
|
|
@@ -16028,7 +16127,10 @@ ${JSON.stringify(
|
|
|
16028
16127
|
...denormalizeNextDataRoute(),
|
|
16029
16128
|
...isNextDataServerResolving ? dataRoutes.filter((route) => {
|
|
16030
16129
|
const { pathname } = new URL(route.dest || "/", "http://n");
|
|
16031
|
-
return !isDynamicRoute(
|
|
16130
|
+
return !isDynamicRoute(
|
|
16131
|
+
pathname.replace(/(\\)?\.json$/, ""),
|
|
16132
|
+
nextVersion
|
|
16133
|
+
);
|
|
16032
16134
|
}) : [],
|
|
16033
16135
|
// /_next/data routes for getServerProps/getStaticProps pages
|
|
16034
16136
|
...isNextDataServerResolving ? (
|
|
@@ -16083,7 +16185,7 @@ ${JSON.stringify(
|
|
|
16083
16185
|
return route;
|
|
16084
16186
|
}).filter(Boolean)
|
|
16085
16187
|
) : dataRoutes,
|
|
16086
|
-
...!isNextDataServerResolving ? [
|
|
16188
|
+
...!isNextDataServerResolving && hasPagesRouter ? [
|
|
16087
16189
|
// ensure we 404 for non-existent _next/data routes before
|
|
16088
16190
|
// trying page dynamic routes
|
|
16089
16191
|
{
|
|
@@ -16305,7 +16407,7 @@ function isLegacyNext(nextVersion) {
|
|
|
16305
16407
|
if (legacy_versions_default.indexOf(nextVersion) !== -1) {
|
|
16306
16408
|
return true;
|
|
16307
16409
|
}
|
|
16308
|
-
const maxSatisfying =
|
|
16410
|
+
const maxSatisfying = import_semver5.default.maxSatisfying(legacy_versions_default, nextVersion);
|
|
16309
16411
|
if (maxSatisfying === null) {
|
|
16310
16412
|
return false;
|
|
16311
16413
|
}
|
|
@@ -16484,12 +16586,12 @@ var build = async (buildOptions) => {
|
|
|
16484
16586
|
message: 'No Next.js version detected. Make sure your package.json has "next" in either "dependencies" or "devDependencies". Also check your Root Directory setting matches the directory of your package.json file.'
|
|
16485
16587
|
});
|
|
16486
16588
|
}
|
|
16487
|
-
let isServerMode = !(config.framework === "blitzjs") &&
|
|
16488
|
-
const beforeFilesShouldContinue =
|
|
16589
|
+
let isServerMode = !(config.framework === "blitzjs") && import_semver5.default.gte(nextVersion, SERVER_BUILD_MINIMUM_NEXT_VERSION);
|
|
16590
|
+
const beforeFilesShouldContinue = import_semver5.default.gte(
|
|
16489
16591
|
nextVersion,
|
|
16490
16592
|
BEFORE_FILES_CONTINUE_NEXT_VERSION
|
|
16491
16593
|
);
|
|
16492
|
-
const isCorrectLocaleAPIRoutes =
|
|
16594
|
+
const isCorrectLocaleAPIRoutes = import_semver5.default.gte(nextVersion, "v11.0.2-canary.3");
|
|
16493
16595
|
if (isServerMode) {
|
|
16494
16596
|
(0, import_build_utils3.debug)(
|
|
16495
16597
|
`Application is being built in server mode since ${nextVersion} meets minimum version of ${SERVER_BUILD_MINIMUM_NEXT_VERSION}`
|
|
@@ -16696,7 +16798,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
16696
16798
|
if (routesManifest.headers) {
|
|
16697
16799
|
headers.push(...(0, import_superstatic.convertHeaders)(routesManifest.headers));
|
|
16698
16800
|
}
|
|
16699
|
-
if (
|
|
16801
|
+
if (import_semver5.default.gte(nextVersion, REDIRECTS_NO_STATIC_NEXT_VERSION)) {
|
|
16700
16802
|
redirects.forEach(
|
|
16701
16803
|
(r, i) => updateRouteSrc(r, i, routesManifest.redirects)
|
|
16702
16804
|
);
|
|
@@ -17118,6 +17220,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17118
17220
|
entryDirectory,
|
|
17119
17221
|
htmlContentType,
|
|
17120
17222
|
prerenderManifest,
|
|
17223
|
+
nextVersion,
|
|
17121
17224
|
routesManifest
|
|
17122
17225
|
);
|
|
17123
17226
|
hasStatic500 = !!staticPages[import_path6.default.posix.join(entryDirectory, "500")];
|
|
@@ -17227,7 +17330,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17227
17330
|
}
|
|
17228
17331
|
const isAppPPREnabled = requiredServerFilesManifest ? requiredServerFilesManifest.config.experimental?.ppr === true || requiredServerFilesManifest.config.experimental?.ppr === "incremental" || requiredServerFilesManifest.config.experimental?.cacheComponents === true : false;
|
|
17229
17332
|
const isAppFullPPREnabled = requiredServerFilesManifest ? requiredServerFilesManifest?.config.experimental?.ppr === true || requiredServerFilesManifest.config.experimental?.cacheComponents === true : false;
|
|
17230
|
-
const isAppClientSegmentCacheEnabled =
|
|
17333
|
+
const isAppClientSegmentCacheEnabled = import_semver5.default.gte(nextVersion, IS_APP_CLIENT_SEGMENT_CACHE_ENABLED_VERSION) || (requiredServerFilesManifest ? requiredServerFilesManifest.config.experimental?.clientSegmentCache === true : false);
|
|
17231
17334
|
const isAppClientParamParsingEnabled = routesManifest?.rsc?.clientParamParsing ?? false;
|
|
17232
17335
|
const clientParamParsingOrigins = requiredServerFilesManifest ? requiredServerFilesManifest.config.experimental?.clientParamParsingOrigins : void 0;
|
|
17233
17336
|
if (requiredServerFilesManifest) {
|
|
@@ -17303,7 +17406,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17303
17406
|
}
|
|
17304
17407
|
let requiresTracing = hasLambdas;
|
|
17305
17408
|
try {
|
|
17306
|
-
if (nextVersion &&
|
|
17409
|
+
if (nextVersion && import_semver5.default.lt(nextVersion, ExperimentalTraceVersion)) {
|
|
17307
17410
|
(0, import_build_utils3.debug)(
|
|
17308
17411
|
"Next.js version is too old for us to trace the required dependencies.\nAssuming Next.js has handled it!"
|
|
17309
17412
|
);
|
|
@@ -17510,7 +17613,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17510
17613
|
import_path6.default.relative(workPath, pages[page].fsPath)
|
|
17511
17614
|
);
|
|
17512
17615
|
const pathname = page.replace(/\.js$/, "");
|
|
17513
|
-
const routeIsDynamic = isDynamicRoute(pathname);
|
|
17616
|
+
const routeIsDynamic = isDynamicRoute(pathname, nextVersion);
|
|
17514
17617
|
routeIsApi = isApiPage(pageFileName);
|
|
17515
17618
|
if (routeIsDynamic) {
|
|
17516
17619
|
dynamicPages.push(normalizePage(pathname));
|
|
@@ -17588,7 +17691,7 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17588
17691
|
return;
|
|
17589
17692
|
}
|
|
17590
17693
|
const pathname = page.replace(/\.js$/, "");
|
|
17591
|
-
if (isDynamicRoute(pathname)) {
|
|
17694
|
+
if (isDynamicRoute(pathname, nextVersion)) {
|
|
17592
17695
|
dynamicPages.push(normalizePage(pathname));
|
|
17593
17696
|
}
|
|
17594
17697
|
const pageFileName = import_path6.default.normalize(
|
|
@@ -17892,7 +17995,8 @@ More info: http://err.sh/vercel/vercel/next-functions-config-optimized-lambdas`
|
|
|
17892
17995
|
isAppPPREnabled: false,
|
|
17893
17996
|
isAppClientSegmentCacheEnabled: false,
|
|
17894
17997
|
isAppClientParamParsingEnabled: false,
|
|
17895
|
-
appPathnameFilesMap: getAppRouterPathnameFilesMap(files)
|
|
17998
|
+
appPathnameFilesMap: getAppRouterPathnameFilesMap(files),
|
|
17999
|
+
nextVersion
|
|
17896
18000
|
});
|
|
17897
18001
|
await Promise.all(
|
|
17898
18002
|
Object.keys(prerenderManifest.staticRoutes).map(
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vercel/next",
|
|
3
|
-
"version": "4.15.
|
|
3
|
+
"version": "4.15.3",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "./dist/index",
|
|
6
6
|
"homepage": "https://vercel.com/docs/runtimes#official-runtimes/next-js",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@types/semver": "6.0.0",
|
|
31
31
|
"@types/text-table": "0.2.1",
|
|
32
32
|
"@types/webpack-sources": "3.2.0",
|
|
33
|
-
"@vercel/build-utils": "
|
|
33
|
+
"@vercel/build-utils": "13.0.1",
|
|
34
34
|
"@vercel/routing-utils": "5.2.1",
|
|
35
35
|
"async-sema": "3.0.1",
|
|
36
36
|
"buffer-crc32": "0.2.13",
|